Method and apparatus for defining and utilizing product location in a vending machine

ABSTRACT

In accordance with one embodiment, a vending machine comprises a plurality of receptacles for holding units of products, each receptacle operable to hold a respective plurality of units in a series. The vending machine further comprises a dispensing mechanism operable to dispense, from each receptacle, a first unit in the respective plurality of units, the dispensing mechanism thereby being operable to dispense only a first unit from the respective series at a time. The vending machine further comprises a means for determining, for a unit, information allowing a relationship among the unit and a location of the unit in the receptacle to be determined.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit and priority under 35 U.S.C. §120 to,and is a continuation of, U.S. patent application Ser. No. 10/951,296filed Sep. 27, 2004 entitled “METHOD AND APPARATUS FOR DEFINING ANDUTILIZING PRODUCT LOCATION IN A VENDING MACHINE”. The entirety of theabove application is incorporated by reference herein for all purposes

This application is also related to the following patent applications:

-   -   1) U.S. patent application Ser. No. 08/920,116 entitled “Method        And System For Processing Supplementary Product Sales At A        Point-Of-Sale Terminal”, filed Aug. 26, 1997 and issued as U.S.        Pat. No. 6,119,099 on Sep. 12, 2000;    -   2) U.S. patent application Ser. No. 08/947,798 entitled “Method        And Apparatus For Dynamically Managing Vending Machine Inventory        Prices”, filed Oct. 9, 1997 and issued as U.S. Pat. No.        7,546,277 on Jun. 9, 2009;    -   3) U.S. patent application Ser. No. 09/345,092 entitled “Vending        Machine System And Method For Encouraging The Purchase Of        Profitable Items”, filed Jun. 30, 1999 and issued as U.S. Pat.        No. 7,249,050 on Jul. 24, 2007;    -   4) U.S. patent application Ser. No. 09/603,677 entitled “Method        And Apparatus For Selecting A Supplemental Product To Offer For        Sale During A Transaction”, filed Jun. 26, 2000 and issued as        U.S. Pat. No. 7,542,919 on Jun. 2, 2009;    -   5) U.S. patent application Ser. No. 09/994,810 entitled “Method        And Apparatus For Utilizing Demand Information At A Vending        Machine”, filed Nov. 27, 2001 and now abandoned;    -   6) U.S. patent application Ser. No. 10/095,372 entitled “Method        And Apparatus For Vending A Combination Of Products”, filed Mar.        11, 2002 and issued as U.S. Pat. No. 7,233,912 on Jun. 19, 2007;    -   7) U.S. patent application Ser. No. 10/403,184 entitled “Method        And Apparatus For Managing And Providing Offers”, filed Mar. 28,        2003 and now abandoned;    -   8) U.S. patent application Ser. No. 10/855,247 entitled “Method        and Apparatus for Managing Vending Machine Offers”, filed May        27, 2004 and now abandoned; and    -   9) PCT Patent Application No. PCT/US04/33038 entitled “Method        And Apparatus For Defining and Utilizing Product Location in a        Vending Machine” filed Sep. 30, 2004.

The entirety of each of the above applications is incorporated byreference herein for all purposes.

BACKGROUND OF THE INVENTION

The present invention relates to vending machines. One aspect of theinvention relates in particular to vending machines of the type thatcomprise (i) a plurality of receptacles (e.g., rows, trays or columns)for holding units of products, each receptacle being operable to hold arespective plurality of units in a series; and (ii) a dispensingmechanism operable to dispense, from each receptacle, a first unit inthe respective plurality of units, the dispensing mechanism therebybeing operable to dispense only a first unit from the respective seriesat a time. Such vending machines are referred to as “series dispensing”vending machines herein.

A vending machine typically holds a finite number of units of productsand is refilled by an operator (e.g., a route driver) on a periodic ornon-periodic basis. An operator typically loads a vending machine with anumber of units of a variety of different products. For example, a firsttray may be loaded with a plurality of units of a first product while asecond tray may be loaded with a plurality of units of a second product.The operator typically determines how many units of each product to loadbased on past experience regarding demand for the products. For example,if a first product has been very popular in the past (e.g., the firstproduct is usually sold out or almost sold out when the operator arrivesto refill the vending machine), the operator may fill two or more traysof the vending machine with the product. In the same example theoperator may only fill one tray of the vending machine with a second,less popular, product (e.g., a product of which some units are typicallystill available from the vending machine when the operator arrives torefill the vending machine).

A conventional vending machine stores very minimal information (e.g.,the single price for all products available from the vending machine or,at most, respective price associated with each tray of the vendingmachine). It would be advantageous for a vending machine to store, or beoperable to access, more detailed information regarding the productsavailable for sale from the vending machine. This would allow variousmethods to be employed to facilitate additional sales from the vendingmachine.

Many other drawbacks of conventional vending machines limit theprofitability of the vending machines.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a diagram illustrating an example of the external appearanceof a vending machine, in accordance with one embodiment.

FIGS. 2A and 2B are each a schematic diagram of a side view of anexemplary receptacle of a vending machine, according to one embodiment.

FIG. 3A is a plan view of a plurality of receptacles of a vendingmachine, according to one embodiment.

FIG. 3B is another representation of the plan view of the plurality ofreceptacles depicted in FIG. 3A, according to one embodiment.

FIG. 4A is a diagram illustrating an example of the external appearanceof a vending machine, with x, y and z coordinates superimposed thereon,according to one embodiment.

FIG. 4B is a plan view of a plurality of receptacles of a vendingmachine, illustrating coordinates for each position of each receptaclein the plan view, according to one embodiment.

FIG. 5 is a block diagram illustrating an example vending machine, inaccordance with one embodiment.

FIG. 6A is a block diagram illustrating an example system, in accordancewith one embodiment.

FIG. 6B is a block diagram illustrating another example system, inaccordance with one embodiment.

FIG. 6C is a block diagram illustrating another example system, inaccordance with one embodiment.

FIG. 7A is a table illustrating an exemplary data structure of a productinventory database for use in the present invention.

FIG. 7B is a table illustrating the exemplary data structure of theproduct inventory database depicted in FIG. 7A, illustrating a change indata due to a vending of a product.

FIG. 8A is a table illustrating an exemplary data structure of a productinventory database for use in the present invention.

FIG. 8B is a table illustrating the exemplary data structure of theproduct inventory database depicted in FIG. 8A, illustrating a change indata due to a vending of a product.

FIG. 9A is a table illustrating an exemplary data structure of a productinventory database for use in the present invention.

FIG. 9B is a table illustrating the exemplary data structure of theproduct inventory database depicted in FIG. 9A, illustrating a change indata due to vending of products.

FIG. 10A is a table illustrating an exemplary data structure of aproduct inventory database for use in the present invention.

FIG. 10B is a table illustrating the exemplary data structure of theproduct inventory database depicted in FIG. 10A, illustrating a changein data due to vending of a product.

FIG. 11 is a table illustrating an exemplary data structure of a productprice database for use in the present invention.

FIG. 12 is a table illustrating an exemplary data structure of atransaction database for use in the present invention.

FIGS. 13A and 13B are a flow chart illustrating an exemplary processaccording to an embodiment of the present invention.

FIG. 14 is a flow chart illustrating an exemplary process according toan embodiment of the present invention.

FIG. 15 is a flow chart illustrating an exemplary process according toan embodiment of the present invention.

FIG. 16 is a flow chart illustrating an exemplary process according toan embodiment of the present invention.

FIG. 17 is a flow chart illustrating an exemplary process according toan embodiment of the present invention.

FIG. 18 is a drawing illustrating an example of various display screensthat may be displayed to an operator of a vending machine, in accordancewith one embodiment.

FIG. 19A and FIG. 19B are diagrams of example barcodes according to someembodiments.

DETAILED DESCRIPTION 1. Introduction

Applicants have previously invented various novel methods that may beemployed in a vending machine, for example, to stimulate sales at thevending machine. For example, Applicants have recognized that it may beadvantageous to provide offers for packages of products from a vendingmachine. Commonly-owned U.S. application Ser. No. 10/095,372, filed Mar.11, 2002 and issued as U.S. Pat. No. 7,233,912 on Jun. 19, 2007 andentitled “METHOD AND APPARATUS FOR VENDING A COMBINATION OF PRODUCTS”and U.S. patent application Ser. No. 10/902,347, filed Jul. 29, 2004 inthe name of Walker et al. and entitled “PRODUCTS AND PROCESSES FORVENDING A PLURALITY OF PRODUCTS VIA DEFINED GROUPS” each describesvarious methods for offering packages of products at a vending machine.In another example, Applicants have recognized that it may beadvantageous to offer a product to a customer in exchange for any changedue to the customer. U.S. patent application Ser. No. 10/855,247 filedMay 27, 2004 and now abandoned entitled “METHOD AND APPARATUS FORMANAGING VENDING MACHINE OFFERS” and U.S. patent application Ser. No.10/095,372 each describe various methods for offering a product to acustomer in exchange for any change due to the customer. In yet anotherexample, Applicants have recognized that it may be advantageous to applyrevenue management principles to a vending machine to determine theparticular products to be stocked in a vending machine, and theparticular number of units of each product to be stocked (e.g., in orderto maximize sales for a given fill period of the vending machine). U.S.patent application Ser. No. 10/855,247 describes various methods forapplying revenue and/or profit management principles to promote sales ata vending machine and of managing offers to be output via a vendingmachine.

Further, Applicants have recognized that implementation of some or allof the above novel methods may be made more efficient and/or effectiveif a vending machine were operable to access more detailed informationregarding the products stocked in the vending machine than conventionalvending machines are operable to access. For example, Applicants haverecognized that it would be advantageous for a vending machine to accessinformation regarding how many units of a product are stored in areceptacle of the vending machine, a respective position of eachindividual unit within a receptacle and/or a relative positioning of theunits within the receptacle. A receptacle, as the term is used herein,is any structure or container of any shape in a vending machine forholding, carrying, or exhibiting articles available for sale from thevending machine (e.g., products such as snacks or soda).

Conventional series vending machines typically only have access to anindication of a receptacle identifier and the price associated with thereceptacle (i.e., row “A1” is associated with a price of $1.00).Applicants, however, have recognized that it would be advantageous, insome circumstances, to store an indication of a number of units of eachproduct stored in a particular receptacle of a vending machine.Applicants have also recognized that, in some circumstances, it would befurther advantageous to store a location of each individual unit ofproduct stored in a receptacle of a vending machine. Applicants havefurther recognized that it would be advantageous, in some embodiments,to store a relative positioning of a unit of a product within areceptacle of the vending machine (e.g., where the unit of the productis located relative to another unit of product, relative to a front ofthe receptacle, etc.). Applicants have also recognized that, in somecircumstances, it would be also be advantageous to stock a singlereceptacle of a vending machine with a number of units of a firstproduct and a number of units of a second product and for a vendingmachine to have access to information regarding the relative location ofthe units of the first product and the units of the second product.Applicants have still further recognized that, in some circumstances, itwould be advantageous for a single receptacle of a vending machine tostore a number of units of a first product associated with firstinformation and a number of units of a second product associated withsecond information. In the latter embodiment, Applicants have recognizedthat it would be advantageous, in some circumstances, for a vendingmachine that has access to such information to be operable to determinewhen it would be appropriate to cause an indicator of the first andsecond information to change the information being indicated (e.g.,based on inventory information accessible to the vending machine).

For example, Applicants have recognized that it would be advantageousfor a vending machine to have access to information indicating that thefirst three units of product in a receptacle (i.e., the next threeproducts available for vending) are units of product “A” while the fourunits behind the units of product “A” are units of product “B”, if thatwas the inventory of the receptacle. A vending machine that has accessto such information (information indicating where the units of product Aand product B are located in a given receptacle) may, for example, beoperable to store products of different prices in a single receptacle.Such a vending machine may further be operable to change the pricedisplayed for the receptacle as the product available for vending fromthe receptacle changes. In another example, a vending machine that hasaccess to such information may determine that product “B” should be madeavailable for vending (e.g., because product “B” has sold out from allother receptacles and is determined to be a very popular product). Thus,the vending machine may output promotions for product “A” in an attemptto promote sales of product “A” and make the units of product “B”located behind the units of product “A” available for vending.Applicants have invented many other uses for such information, asdetailed herein.

Conventional vending machines are not operable to access informationsuch as the locations of individual units of products in a givenreceptacle of the vending machine, a relative positioning of units ofproducts within a given receptacle, or even a number of units of productstored in a given receptacle. Prior to Applicants' invented methods ofpromoting sales at a vending machine, there has been no recognized needfor a series dispensing vending machine to have access to such detailedlocation information. Further, prior to Applicants' invented methods forutilizing information such as the locations of individual units ofproducts in a given receptacle of a vending machine, there have been norecognized uses for such information in a series dispensing vendingmachine.

Thus, in accordance with one embodiment, a vending machine comprises (i)a plurality of receptacles for holding units of products, eachreceptacle operable to hold a respective plurality of units in a series;(ii) a dispensing mechanism operable to dispense, from each receptacle,a first unit in the respective plurality of units, the dispensingmechanism thereby being operable to dispense only a first unit from therespective series at a time; and (iii) means for determining, for eachunit, information allowing a relationship among a unit and a location ofthe unit in the receptacle to be determined.

In one embodiment the means for determining information comprises amemory of the vending machine. In one embodiment the means fordetermining information comprises a remote memory accessible by thevending machine via a network. In one embodiment the means fordetermining information comprises a memory associated with a unit of aproduct (e.g. a radio frequency identification (RFID) tag). Theinformation may define, for a position, an identity of the unit. Inanother example, the information may define, for an identity of theunit, a position of the unit. In one embodiment, the vending machinefurther comprises a means for performing an action based on theinformation. For example, a processor of the vending machine may beprogrammed to output an offer based on the information.

In accordance with one embodiment, a vending machine comprises: (i) aplurality of receptacles for holding units of products, each receptacleoperable to hold a respective plurality of units in a series; (ii) adispensing mechanism operable to dispense, from each tray, a first unitin the respective plurality of units, the dispensing mechanism therebybeing operable to dispense only a first unit from the respective seriesat a time; and (iii) a means for determining, for each unit of productstored in the vending machine, a position defined by an x, y and zcoordinate. The means for determining may comprise, for example, amemory of the vending machine, the memory storing, for each unit ofproduct stored in the vending machine, a position defined by an x, y andz coordinate. In another example, the means for determining may comprisea remote memory accessible by the vending machine via a communicationnetwork, wherein the remote memory stores, for each unit of productstored in the vending machine, a position defined by an x, y and zcoordinate. In yet another example, the means for determining maycomprise a memory associated with a unit of a product (e.g., a RFIDtag).

In accordance with one embodiment, a method comprises storing, in amemory of a vending machine, a first price and a second price associatedwith a single receptacle of the vending machine, the receptacle beingoperable to store a plurality of units of products, wherein only one ofthe first price and the second price is active at a time. The methodfurther comprises storing, in the memory of the vending machine, a rulefor determining which one of the first price and the second price is tobe active, the rule being a rule based on an inventory status of thereceptacle.

In accordance with one embodiment, a method includes storing, in amemory of a vending machine, an indication of a first number of units ofa first product placed in a receptacle of the vending machine and anindication of a second number of units of a second product placed in thereceptacle, wherein the units of the first product and the units of thesecond product are placed in the receptacle one behind another such thatonly a single unit of one of the first product and the second productcan be vended from the vending machine at a time. The method furtherincludes storing, in the memory, a first price associated with the firstproduct and a second price associated with the second product. Themethod further includes storing, in the memory, a rule for determiningwhich price is to be displayed as the price associated with thereceptacle, wherein the rule indicates that either the first price orthe second price is to be displayed based on whether a unit of the firstproduct or a unit of the second product is next available for vendingfrom the vending machine.

In accordance with one embodiment, a method includes changing, from afirst price to a second price, a price displayed as the price forproducts in a particular receptacle of a vending machine based oninventory information associated with the receptacle, the vendingmachine comprising a plurality of receptacles positioned in a pluralityof rows and a plurality of columns of the vending machine, eachreceptacle being capable of storing a plurality of units of one or moreproducts.

In accordance with one embodiment, a method includes determining, for areceptacle of a vending machine, a first product that is a product nextavailable for vending from the receptacle. The method further includesdetermining, for the receptacle, a second product stored in the tray,the second product being stored behind the first product and thus notbeing next available for vending from the receptacle until at least thefirst product has been sold. The method further includes determiningthat a predetermined rule has been satisfied, thereby determining thatthe second product should be made next available for vending from thereceptacle. The method further includes outputting a promotion for thefirst product in an effort to make the second product available forvending from the receptacle.

In one embodiment, determining that a predetermined rule has beensatisfied comprises determining that a demand for the second productexceeds a predetermined threshold.

In one embodiment, determining that a predetermined rule has beensatisfied comprises determining that a consumer has indicated aninterest in purchasing the second product and that the second product isnot next available for vending from any other receptacle of the vendingmachine. In one embodiment, determining that a predetermined rule hasbeen satisfied comprises determining that a demand for the first productis below a predetermined threshold.

In accordance with one embodiment, a vending machine comprises aplurality of receptacles positioned in a plurality of rows and aplurality of columns of the vending machine, each receptacle beingcapable of storing a plurality of units of one or more products. Thevending machine further comprises a memory operable to store two or moredistinct prices for a single receptacle and a rule for determining whichof the two or more distinct prices is to be displayed as the price forpurchasing the next available unit of a product from the receptacle. Therule is based on information associated with inventory stored in thereceptacle.

In accordance with one embodiment, a vending machine comprises aplurality of receptacles arranged in a plurality of rows and a pluralityof columns of the vending machine, each receptacle comprising aplurality of positions and being capable of storing a plurality of unitsof one or more products, each unit of the plurality of units beingstored in one of the plurality of positions. The vending machine furthercomprises a memory operable to store an identification of a respectiveunit of a product stored in each position of each receptacle.

In accordance with one embodiment, a vending machine comprises aplurality of receptacles arranged in a plurality of rows and a pluralityof columns of the vending machine, each receptacle comprising aplurality of positions and being capable of storing a plurality of unitsof one or more products, each respective unit of the plurality of unitsbeing stored in one of the plurality of positions. The vending machinefurther comprises a memory operable to store (i) an indication of afirst number of units of a first product and a second number of units ofa second product stored in a single receptacle; and (ii) a first pricefor the first product and a second price for the second product. Thevending machine further comprises a processor operable to (i) determinethat a unit of the first product is next available for vending from thereceptacle, (ii) display the first price as the price associated withthe receptacle; (iii) determine that the unit of the first product hasbeen vended; (iv) determine that a unit of the second product is nextavailable for vending from the receptacle; and (v) change the priceassociated with the receptacle from the first price to the second price.

In one embodiment, the processor being operable to determine that a unitof the second product is next available for vending from the receptaclecomprises the processor being operable to determine which position ofthe receptacle stores a unit of a product next available for vendingfrom the receptacle. In one embodiment, the processor is furtheroperable to (i) track a number of units of the first product that havebeen sold from the receptacle of the vending machine; and (ii) determinethat the number of units of the first product that have been sold isequal to the first number, thereby determining that the units of thesecond product are next available for vending from the receptacle. Inone embodiment, the memory of the vending machine is further operable tostore an indication, for the receptacle, of which one of a unit of thefirst product and a unit of the second product is stored in a respectiveposition of the receptacle.

In accordance with one embodiment, a method comprises determining thatit would be advantageous, to a vending machine operator, to sell a unitof a first product from the vending machine. The method further includesdetermining that vending a unit of a second product is a pre-conditionto selling the unit of the first product. The method further includescausing an event that facilitates the vending of the second product suchthat the first product is made available for sale.

Numerous embodiments are described in herein, and are presented forillustrative purposes only. The described embodiments are not intendedto be limiting in any sense. The invention is widely applicable tonumerous embodiments, as is readily apparent from the disclosure herein.Those skilled in the art will recognize that the present invention maybe practiced with modification and alteration without departing from theteachings disclosed herein. Although particular features of the presentinvention may be described with reference to one or more particularembodiments or figures, it should be understood that such features arenot limited to usage in the one or more particular embodiments orfigures with reference to which they are described.

With these and other advantages and features of the invention that willbecome hereinafter apparent, the nature of the invention may be moreclearly understood by reference to the following detailed description ofthe invention, the appended claims and to the several drawings includedherein.

In the following description, reference is made to the accompanyingdrawings that form a part hereof, and in which is shown, by way ofillustration, specific embodiments in which the invention may bepracticed. These embodiments are described in sufficient detail toenable those skilled in the art to practice the invention, and it is tobe understood that other embodiments may be utilized and thatstructural, logical, software, and electrical changes may be madewithout departing from the scope of the present invention. The followingdescription is, therefore, not to be taken in a limited sense.

Any enumerated listing of items herein does not imply that any or all ofthe items are mutually exclusive, unless expressly specified otherwise.

Devices that are in communication with each other need not be incontinuous communication with each other, unless expressly specifiedotherwise. In addition, devices that are in communication with eachother may communicate directly or indirectly through one or moreintermediaries.

A description of an embodiment with several components in communicationwith each other does not imply that all such components are required. Onthe contrary a variety of optional components are described toillustrate the wide variety of possible embodiments of the presentinvention.

Further, although process steps, method steps, algorithms or the likemay be described in a sequential order, such processes, methods andalgorithms may be configured to work in alternate orders. In otherwords, any sequence or order of steps that may be described does notnecessarily indicate a requirement that the steps be performed in thatorder. The steps of processes described herein may be performed in anyorder practical. Further, some steps may be performed simultaneously.

It will be readily apparent that the various methods and algorithmsdescribed herein may be implemented by, e.g., appropriately programmedgeneral purpose computers and computing devices. Further, programs thatimplement such methods and algorithms may be stored and transmittedusing a variety of known media.

When a single device or article is described herein, it will be readilyapparent that more than one device/article (whether or not theycooperate) may be used in place of a single device/article. Similarly,where more than one device or article is described herein (whether ornot they cooperate), it will be readily apparent that a singledevice/article may be used in place of the more than one device orarticle.

The functionality and/or the features of a device may be alternativelyembodied by one or more other devices which are not explicitly describedas having such functionality/features. Thus, other embodiments of thepresent invention need not include the device itself.

2. Terms

Throughout the description that follows and unless otherwise specified,the following terms may include and/or encompass the example meaningsprovided in this section. These terms and illustrative example meaningsare provided to clarify the language selected to describe embodiments ofthe invention both in the specification and in the appended claims.

The terms “a”, “an” and “the” mean “one or more”, unless expresslyspecified otherwise.

The term “actual product velocity” may refer to an actual rate at whicha given product is sold by a vending machine during a period of time(e.g., during a sales period).

The term “baseline velocity demand” may refer to the total number ofproducts sold at retail price within a particular period of time (e.g.,during a particular sales period).

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing instructions which may be read by acomputer, a processor or a like device. Such a medium may take manyforms, including but not limited to, non-volatile media, volatile media,and transmission media. Non-volatile media include, for example, opticalor magnetic disks and other persistent memory. Volatile media includedynamic random access memory (DRAM), which typically constitutes themain memory. Transmission media include coaxial cables, copper wire andfiber optics, including the wires that comprise a system bus coupled tothe processor. Transmission media may include or convey acoustic waves,light waves and electromagnetic emissions, such as those generatedduring radio frequency (RF) and infrared (IR) data communications.Common forms of computer-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, any other magneticmedium, a CD-ROM, DVD, any other optical medium, punch cards, papertape, any other physical medium with patterns of holes, a RAM, a PROM,an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, a carrierwave as described hereinafter, or any other medium from which a computercan read.

Various forms of computer readable media may be involved in carrying asequences of instructions to a processor.

The term “control system” may refer to a combination of hardware andsoftware, operative to carry out methods of the present invention. Forexample, a control system may comprise a processor performinginstructions of a program.

The terms “customer device” and “user device” shall be synonymous andmay refer to any device owned or used by a customer, which device iscapable of accessing and/or outputting online and/or offline content.Customer devices may communicate with one or more vending machinecontrollers, one or more vending machines, one or more third-partyservice provider controllers, one or more user terminals, and/or othernetwork nodes. In some embodiments, customer devices may, for example,include gaming devices, personal computers, personal digital assistants,point-of-sale terminals, point of display terminals, kiosks, telephones,cellular phones, automated teller machines (ATMs), pagers, andcombinations of such devices.

The terms “dynamically priced upsell promotion”, “dynamic priced upsellpromotion”, “roundup deal”, “roundup promotion”, and “spare-changeupsell promotion” shall be synonymous and may refer to a promotion to acustomer of a first product for the purchase of an additional product inexchange for an additional amount that is equal to an amount of changedue back to the customer as a result of the customer's purchase of thefirst product.

The terms “an embodiment”, “embodiment”, “embodiments”, “theembodiment”, “the embodiments”, “one or more embodiments”, “someembodiments”, and “one embodiment” mean “one or more (but not all)embodiments of the present invention(s)” unless expressly specifiedotherwise.

The terms “fill period” and “sales period” shall be synonymous and mayrefer to the period of time between restocking events at a vendingmachine.

The terms “fixed price upsell promotion” and “upsell promotion” shall besynonymous and may refer to a promotion to a customer of a first productfor the purchase of an additional product in exchange for an additionalamount that is not necessarily correlated with an amount of change dueback to the customer as a result of the customer's purchase of the firstproduct. In some embodiments, a customer who has purchased a firstproduct and is thereby due change may be required to deposit additionalcurrency in order to accept a fixed price upsell promotion. Thus, thefixed price upsell promotion may require that the customer pay an amountequal to his or her change due plus an additional amount of currency.

The terms “full price” and “retail price” shall by synonymous and mayrefer to the normal price charged for the purchase of a given product.Typically, promotions present customers with the opportunity to purchaseproducts at less than full price.

The terms “ideal product velocity”, “target product velocity”, and“target velocity” shall be synonymous and may refer to the desired rateat which a given product should be sold by a vending machine during aperiod of time (e.g., during a sales period). Thus, in some embodiments,an ideal velocity may be set or calculated for each product indicatingthe rate at which products must be sold in order to deplete theinventory to a certain level by the end of a given sales period (i.e.,by the next restocking event at the vending machine).

For example, an ideal product velocity may be calculated by a vendingmachine control system after an operator inputs a restock date and adesired remaining inventory for the date. For example, an operator maywish to have only one of each product remaining at the next restockingevent so that the vending machine sells as many products as possiblewithout completely selling out and thereby disappointing customers.Thus, in the preceding example, if an operator (a) stocks 50 units ofSoda A, (b) inputs a restock date fourteen days away, and (c) indicatesthat only one unit of Soda A should remain at the restock date, thecontrol system may divide 49 by 14 to conclude that, on average, 3.5units must be sold per day within the sales period in order to realizethe ideal product velocity.

As discussed herein, a vending machine or other device may periodically,substantially continuously, or otherwise determine whether or not actualproduct velocity is at least equal to the ideal product velocity, and ifnot, may institute promotions as discussed herein. An ideal productvelocity may be further set so that if such a velocity is reached, theincrease in volume will sufficiently offset any discounts afforded tocustomers through promotions, thereby eliminating or reducing thepotential for dilution.

The terms “including”, “comprising” and variations thereof mean“including but not limited to”, unless expressly specified otherwise.

The term “input device” may refer to a device that is used to receive aninput. An input device may communicate with or be part of another device(e.g. a point of sale terminal, a point of display terminal, a customerterminal, a controller, a customer device, a vending machine, acontroller, a peripheral device, etc.). Some examples of input devicesinclude: a bar-code scanner, a magnetic stripe reader, a computerkeyboard, a point-of-sale terminal keypad, a touch-screen, a microphone,an infrared sensor, a sonic ranger, a computer port, a video camera, amotion detector, a digital camera, a network card, a universal serialbus (USB) port, a GPS receiver, a radio frequency identification (RFID)receiver, a RF receiver, a thermometer, a pressure sensor, and a weightscale.

The term “output device” may refer to a device that is used to outputinformation. An output device may communicate with or be part of anotherdevice (e.g. a vending machine, a point of sale terminal, a point ofdisplay terminal, a customer device, a controller, etc.). Possibleoutput devices include: a cathode ray tube (CRT) monitor, liquid crystaldisplay (LCD) screen, light emitting diode (LED) screen, a printer, anaudio speaker, an infra-red transmitter, and a radio transmitter.

The term “minimum selling price” may refer to the lowest price at whicha product may be sold. The minimum selling price may not necessarilyreflect the cost of the product to the operator of a vending machine.Thus, the minimum selling price may include an acceptable profit margin.Conversely, the minimum selling price may be set less than the cost of aproduct to the operator of a vending machine, as may be the case where apromotion or series of promotions would sufficiently offset any lossassociated with selling the particular product below cost.

The term “operator” may refer to the owner of a vending machine, oragent or associate thereof (e.g., a route driver or lessee of a vendingmachine).

The terms “package deal”, “combination deal”, “package promotion”,“package of products”, “combination promotion”, “combination productpromotion”, “‘Load-up’ deal”, “value combo deal”, and “combo deal” shallbe synonymous and may refer to a promotion enabling a customer topurchase at least two products for a single price. In one or moreembodiments, package promotions are configured to result in a benefit(e.g., net-savings) to the customer when compared to the sum of theindividual component product's retail prices.

The term “peripheral device” may refer to any device associated with oneor more vending machines, the peripheral device being operable toperform any of the functions described herein. For example, in oneembodiment a prior art vending may be retrofitted with a peripheraldevice that comprises a processor, memory, and output device forfacilitating promotions in accordance with embodiments of the presentinvention. A peripheral device may or may not be attached to a vendingmachine. A peripheral device may or may not be operable to direct theassociated vending machine to perform certain functions. A peripheraldevice, or portions thereof, may be housed inside the casing of theassociated vending machine. Further, a peripheral device may be operableto detect one or more events at a vending machine. For example, aperipheral device may be operable to detect one or more signals outputby a processor of a vending machine. Further still, a peripheral devicemay be operable to communicate with a processor of an associated vendingmachine.

The terms “product,” “good,” “item”, “merchandise,” and “service” shallbe synonymous and may refer to anything licensed, leased, sold,available for sale, available for lease, available for licensing, and/oroffered or presented for sale, lease, or licensing including individualproducts, packages of products, subscriptions to products, contracts,information, services, and intangibles. Examples of goods sold atvending machines include beverages (e.g. cans of soda) and snacks (e.g.candy bars). Examples of services sold by vending machines include carwashes, photography services and access to digital content (e.g.permitting the downloading of MP3 files or “ring tunes” to a handhelddevice).

The term “profit inventory management” or “PIM” may refer to thepractice of managing the sale of products so as to increase a vendingmachine's profitability during a period of time (e.g., during a salesperiod). In some embodiments, a vending machine is programmed toevaluate sales data in light of stored rules indicative of a profitgoal. For example, stored rules may indicate an ideal product velocitythat would tend to increase the machine's profitability. The machine maydetermine that, based on current sales data, the ideal product velocity(for a given product or group of products) will not be achieved based oncurrent promotions, prices, or other sales parameters. In response, thevending machine may execute multi-variant equations to identify,construct and offer a promotion to a customer with the goal of achievingthe ideal product velocity (for a given product or group of products).

The term “promotion” may refer to a message that is output, regardingsome product, distinct from a general offer to sell products from avending machine at retail prices. For example, a promotion may comprisea message intended to increase machine profitability. Typically, apromotion allows customers to purchase one or more products under termsthat are generally more favorable to the customer than standard retailterms (e.g., at prices less than or equal to the corresponding product'sfull price(s), but greater than or equal to the corresponding product'sminimum price(s)).

The term “receptacle” may refer to any structure or container of anyshape in a vending machine for holding, carrying, or exhibiting articlesavailable for sale from the vending machine (e.g., products such assnacks or soda). For example, in one embodiment a receptacle maycomprise a tray including a dual helix dispensing mechanism.

The terms “restock date”, “restock time”, “restock event” and “pick-up”shall be synonymous and may refer to the time and/or date that a vendingmachine is scheduled (or, in some embodiments, expected) to be restockedby an operator of a vending machine.

The terms “server” and “controller” shall be synonymous and may refer toany device that may communicate with one or more vending machines, oneor more third-party controllers, one or more remote controllers, one ormore customer devices, one or more peripheral devices and/or othernetwork nodes, and may be capable of relaying communications to and fromeach.

The terms “target profit” and “ideal profit” may be used interchangeablyand may refer to a desired profit to be achieved by a vending machine orgroup of vending machines. In some embodiments, the profit goal set byan operator of a vending machine.

The scope of the present invention and embodiments thereof may beunderstood more fully with reference to the following figures.Embodiments of the present invention are first described by means ofschematic and block diagrams illustrating exemplary systeminfrastructure and devices that may be utilized by an entity practicingthe present invention. Exemplary data structures illustrating tablesthat may be used when practicing embodiments of the present inventionare then described, followed by flow diagrams that illustrate exemplaryprocesses consistent with some embodiments of the present invention.Finally, some exemplary screen displays that may be output to anoperator of a vending machine are described.

3. Systems and Apparatus

Generally, a vending machine in accordance with the present inventionmay comprise a device, or communicate with a device (e.g., a controller,a peripheral device, and/or a peripheral device controller), configuredto manage sales transactions with customers by, among other things,receiving payment from customers, storing information related to thelocation of individual units of products, controlling the pricing and/ordistribution of goods and/or controlling entitlements to services.

Referring now to FIG. 1, illustrated therein is an example of theexternal appearance of a vending machine 100, in accordance with oneembodiment. The vending machine 100 includes an inventory storage anddispensing mechanism 160, which comprises a rotating helix and gravitydispensing system, wherein products are located in receptacles (e.g.,trays) and between coils of one or more rotating helices. A helix istypically rotated by a motor located at the back of the receptacle, aswould be understood by one of ordinary skill in the art. The vendingmachine causes a product to be dispensed by causing the helix of thereceptacle selected by a customer to rotate (e.g., via the motor) suchthat a unit of a product is pushed out of the receptacle. Gravity causesthe product to fall into the delivery bin 105. The vending machine 100also includes an output screen 110 for outputting information tocustomers of the vending machine. Illustrated in output screen 110 is anoffer to a customer to purchase a product next available from aparticular receptacle and the product behind the next available productfor a fixed price upsell amount. For example, assume the product that isnext available for vending from the receptacle is determined to be anunpopular product (e.g., it has been next available for a predeterminedamount of time without being purchased). Further assume that the productbehind this unpopular product is determined to be a popular product(e.g., it has sold out from all other receptacles in which it waspreviously available). In such circumstances, the exemplary offerillustrated in output screen 110 may be output in order to stimulate thesale of the less popular product that is next available for sale fromthe receptacle by packaging it with the popular product behind it, for afixed price upsell offer. Other uses of information regarding locationsof individual units of products are discussed in detail below.

The vending machine 100 further includes a payment mechanism 120 forreceiving payment for products and a change bin 130 for deliveringchange or refunds to customers, in the form of coins. The vendingmachine 100 also includes an input device 140. Input device 140 may beutilized by a customer to input information to the vending machine. Forexample, input device 140 may comprise a keypad or touch-screen that acustomer may use to indicate a selection of a receptacle from which aproduct may be vended and/or an acceptance of an offer output to thecustomer. The vending machine 100 may include additional conventionalcomponents (e.g., bezels for selecting products), as would be understoodby one of ordinary skill in the art.

It should be noted that the vending machine 100 is depicted as a snackmachine that holds products in a plurality of receptacles (e.g., trays)that are arranged in a plurality of rows and columns. As describedabove, each receptacle is operable to hold a unit of a product betweentwo or more coils of helices that span the length of the tray. However,the present invention is not limited to use in this type of vendingmachine. Embodiments of the present invention may be implemented, forexample, in any vending machine that comprises (i) a plurality ofreceptacles (e.g., trays or columns) for holding units of products, eachreceptacle being operable to hold a respective plurality of units in aseries; and (ii) a dispensing mechanism operable to dispense, from eachreceptacle, a first unit in the respective plurality of units, thedispensing mechanism thereby being operable to dispense only a firstunit from the respective series at a time. Such vending machines arereferred to as “series dispensing” vending machines herein.

For example, embodiments of the present invention may be implemented ina vending machine that holds products in tray with a push mechanism fordispensing a unit of a product from a tray. Similarly, embodiments ofthe present invention may be implemented in a vending machine thatutilizes a robotic mechanism for dispensing products from a tray.Embodiments of the present invention may also be implemented in avending machine that stores products in columns, wherein a unit of aproduct is released from a column by an opening of a lip or otherholding mechanism of the column such that the unit falls out of thecolumn with the aid of gravity (e.g., a soda can dispensing machine).Thus, although embodiments described herein may refer to a helix-typevending machine typically used to vend snacks, other types of vendingmachines which do not feature a helix dispensing mechanism may beemployed. For example, in one embodiment vending machine 100 maycomprise a beverage machine, such as the DN 55 Beverage Max™ fromDixie-Narco, Inc.™ of Williston, S.C.

The vending machine 100 further includes a cabinet 150. Cabinet 150 maybe constructed from, for example, any combination of (1) commercialgrade (i.e., sixteen-gauge) steel (e.g., for exterior panels andinternal shelving), (2) transparent materials such as glass orPlexiglas, (3) rubber (e.g., for waterproofing insulation), (4) plastic,(5) aluminum, and/or (6) any suitable material.

Many commercially available machine cabinets can be modified to work inaccordance with the present invention. For example, in snack machineembodiments, a suitable machine casing may comprise the 129 SnackShop™manufactured by Automatic Products International, Ltd.™ of Saint Paul,Minn., which stands at 72″/1829 mm wide, has a width of 38⅞″/988 mm, anda depth of 35″/889 mm. Other suitable snack machine casings include theA La Carte™ machine from Automatic Products™, and the GPL SnackVendor™model # 159 from Crane Merchandising Systems/Crane Co.™ of Stamford,Conn.

In beverage machine embodiments, machine cabinets commercially availablefrom Dixie Narco™, Inc. of Williston, S.C. may be employed. Beveragemachine cabinets may comprise a “cooler” or “glass front” style frontpanel, featuring a transparent front panel (e.g., glass) enablingcustomers to see inventory for sale. Alternatively, beverage machinecasings may comprise a “bubble front” or “stack front” style frontpanel, featuring a decorative front panel, typically used to advertise alogo of a product manufacturer commercially interested in the vendingmachine's operation.

Other embodiments are contemplated as well, including combination snackand beverage vending machine embodiments, such as those available fromCrain Co.™. Further details concerning the suitability of machinecasing/cabinetry are well known in the art, and need not be described infurther detail herein.

The vending machine 100 further comprises a product display window 155.The product display window 155 may comprise a glass or Plexiglaspartition behind which are visible the products available for sale fromthe vending machine and the product storage and dispensing mechanismthat holds the products within the vending machine.

Referring now to FIG. 2A, illustrated therein is a schematicrepresentation of a side view of a receptacle 200. Receptacle 200 maycomprise, for example, a receptacle of the vending machine 100 (FIG. 1).The receptacle 200 includes a helix 205 that is driven by a motor 210.The helix 200 comprises a plurality of coils. Between each set of twoadjacent coils is located a product. The front of the vending machine isillustrated as structure 215. Structure 215 may comprise, for example, aglass or Plexiglas partition (which may serve, in some embodiments, as aproduct display window 155). It can be seen that the helix 205 holds,from the front 215 of the vending machine in which the receptacle 200 islocated, a first unit of product 220 between the first two coils, asecond unit of product 225 between the next two coils, and a third unitof product 230 between the next two coils. The first, second and thirdunits may be units of the same product or units of different products.In accordance with one embodiment, the first unit of product 220 may bereferred to as being located in a first position of the receptacle(indicated by reference numeral 235), the second unit of product 225 maybe referred to as being located in a second position of the receptacle(indicated by reference numeral 240) and the third unit of product 230may be referred to as being located in a third position of thereceptacle (indicated by reference numeral 245).

As described above, a conventional series dispensing vending machinedoes not have access to information indicating a relationship among aunit of a product and the location of the unit of the product within areceptacle of the vending machine. Thus, for example, if the receptacle200 with the units of product 220, 225 and 230 were located in aconventional vending machine, the vending machine would be unable todetermine that the first unit of product 220 is located in the firstposition 235. In fact, a conventional vending machine would be unable todetermine whether any product is located within the first position 235or have access to any information regarding particular positions of thereceptacle 200. Further, a conventional vending machine does nottypically have access to any information regarding inventory. Inembodiments of the present invention, a vending machine including thereceptacle 200 with the units of products 220, 225 and 230 would be ableto determine not only that the first unit of product 220 is located inthe first position 235, but also that the second unit of product 225 islocated in the second position 240 and that the third unit of product230 is located in the third position 245.

It should be noted that although only three product positions areillustrated in FIG. 2A, a receptacle with any number of productpositions is within the scope of the present invention. Further,although a receptacle with an inventory and storage mechanism comprisinga rotating helix is illustrated in FIG. 2A, a receptacle with any typeof inventory storage and dispensing mechanism is within the scope of thepresent invention.

In operation, the vending machine in which the receptacle 200 is locatedmay cause the first unit of product 220 to be vended from the vendingmachine by activating the motor 210, thus causing the motor 210 torotate the helix 205. The rotation of the helix 205 causes the firstunit of product 220 to be pushed over the edge of the receptacle 200 andfall into a delivery bin (e.g., delivery bin 105) located below. Thesecond unit of product 225 would thus be caused to shift from the secondposition 240 to the first position 235. Similarly, the third unit ofproduct 230 would be caused to shift from the third position 245 to thesecond position 240. The third position 245 would be left empty.

FIG. 2B illustrates a state of the receptacle 200 after the first unitof product 220 is vended.

A memory accessible to the vending machine (e.g., a memory of thevending machine, a memory of a receptacle, or a memory of another deviceaccessible to the vending machine) of receptacle 200 may, upon thevending of a product from receptacle 200, be updated to indicate the newrelationship among the units of product and the positions of thereceptacle 200. The following figures illustrate some exemplary datastructures for storing an indication of a relationship among the unitsof product stored in the vending machine and the positions ofreceptacles in the vending machine.

Referring now to FIG. 3A, illustrated therein is an embodiment 300 of aplan view of a plurality of receptacles of a vending machine, and anindication of a unit of a product (if any) located in a respectiveposition of each of the illustrated receptacles. Specifically, FIG. 3Aillustrates one embodiment of a plan view of the top receptacles of thevending machine 100 (i.e., a plan view of the receptacles A1 throughA5). As can be seen, each receptacle is operable to store a plurality ofunits of products in a series. Each unit is located in a respectiveposition of a receptacle. For example, receptacle A1 includes aplurality of positions 301 through 319. The positions are numberedsequentially from the front of the vending machine, which is indicatedas front partition 325. Each position is defined by one or morepartitions 302 through 318. For example, position 301 is defined by thefront edge of the receptacle A1 and partition 302. Position 303 isdefined by partition 302 and partition 304. The partitions 302 through318 may comprise, for example, coils of a helix. In another example,partitions 302 through 318 may comprise retractable or otherwise movablewedges, lips or other structures protruding from the bottom, top orsides of receptacle A1.

As illustrated in embodiment 300, each receptacle may store units ofmore than one product. A unit of product located in a position isrepresented as a letter of the alphabet within a circle in FIG. 3A. Aposition that does not hold any unit of any product (i.e., an emptyposition) is thus illustrated without any circled letter within it. Forexample, receptacle A1 stores four units of product A (in positions 301through 307) and six units of product B (in positions 309 through 319).Of course, a receptacle may also store only units of a single product(e.g., as the representation of receptacle A4 illustrates).

In the embodiment 300, a vending of a first product from a receptaclecauses the remaining products to shift forward by one position. Thus,for example, if the unit of product A were to be vended from position301 of receptacle A1, all remaining units would be shifted forward byone position. Accordingly, one of the three remaining units of product Awould be located in each respective position of positions 301 through305, and one of the six units of product B would be located in eachrespective position of positions 307 through 317. Position 319 would beleft empty. As described below with reference to FIGS. 7-10, a vendingmachine in accordance with embodiments of the present invention hasaccess (e.g., via a product inventory database) to information regardingthe units of products occupying the locations of the receptacles of thevending machine at any given time.

Referring now to FIG. 3B, illustrated therein is an embodiment 350 of aplan view of the plurality of receptacles A1 through A5 of FIG. 3A.Embodiment 350 illustrates a representation of an identification systemfor the positions of the receptacles. No products are illustrated inFIG. 3B, the plan view merely illustrating a unique identifier for eachposition. For example, as described herein, a vending machine may haveaccess to information, for each unit of product stored in the vendingmachine, allowing a relationship among a unit and a location of the unitin a receptacle of the vending machine to be determined. Accordingly, inone embodiment, the vending machine may have access to informationidentifying each available position of each receptacle of the vendingmachine. Each position may thus have a unique identifier associatedtherewith in the memory accessible to the vending machine. In embodiment350, a unique identifier comprises a numeral. Each position in thevending machine thus has a number associated therewith, numberedconsecutively starting with the first position in receptacle A1 andmoving front-to-back, then to the front of the next receptacle to theright. Thus, in embodiment 300, the first position of receptacle A1(which was referred to as position 301 in FIG. 3A) is identified asposition “001”. The last position of receptacle A5 is identified asposition “050”. Thus, for example, if a vending machine were todetermine which product, if any, is located in the first position ofreceptacle A3, the vending machine would query the product identifierassociated with position “021”, as stored in a product inventorydatabase. Similarly, if the vending machine were to determine whichproduct, if any, is located behind the first product of receptacle A3(i.e., in the second position of receptacle A3), the vending machinewould query the product identifier associated with position “A22”.

Of course, as would be understood by one of ordinary skill in the artupon reading the present disclosure, any type of unique identifier maybe utilized to uniquely identify each position operable to store aproduct in vending machine 500. For example, the position referred to asposition “001” in embodiment 300 may in another embodiment be identifiedas “Slot 1, tray A-1” in a situation where the receptacle 200 is a trayfor holding products in a variety of slots.

Referring now to FIG. 4A, illustrated therein is an example of theexternal appearance of the vending machine 100 of FIG. 1, with referencelines (i.e., axes) of a three-dimensional rectangular coordinate systemimposed thereon. Specifically, FIG. 4A illustrates an x-axis along whichthe rows of receptacles is arranged, a y-axis along about which thecolumns of receptacles of the vending machine are arranged, and a z-axisalong the length of the receptacles A1 through E5. The axes are mutuallyorthogonal to each other (each at a right angle to the other). In otherwords, the x-axis is mutually orthogonal to the y-axis, the y-axis ismutually orthogonal to the z-axis and the z-axis is mutually orthogonalto the x-axis. It should be noted that in one embodiment the axes maynot be mutually orthogonal to each other. For example, the receptaclesmay be positioned at an angle slanted towards the grounds (e.g., toutilize gravity to facilitate vending). In such an embodiment, forexample, the z axis may not be orthogonal to the x-axis. FIGS. 4A and 4Bare presented herein to illustrate that, in accordance with oneembodiment, each position available for holding a unit of a product in avending machine may be uniquely identified using the coordinates of athree-dimensional coordinate system.

Referring now to FIG. 4B, illustrated therein is an embodiment 450 of aplan view of the plurality of receptacles A1 through A5 of FIG. 4A.Embodiment 450 illustrates another representation of an identificationsystem for the positions of the receptacles, wherein a vending machineis operable to uniquely identify each position for holding productswithin the vending machine. In embodiment 450, a unique identifiercomprises a set of coordinates in the three-dimensional coordinatesystem referred to in FIG. 4A. For example, the first position inreceptacle A1 is identified by the coordinates 1, 1, 1, indicating thatthe position is located at 1 unit length along the x-axis, unit lengthalong the y-axis and 1 unit length along the z-axis. Similarly, thesecond position in receptacle A1 is identified by the coordinates 2, 1,1, indicating that the first position is located at 2 unit lengths alongthe x-axis, one unit length along the same y-axis, and 1 unit lengthalong the z-axis.

It should be noted that, in one or more embodiments, different trays mayinclude a different numbers of positions. For example, a firstreceptacle may include ten positions while a second receptacle mayinclude twelve positions. Thus, for example, a last position of a firsttray may be located at a different unit length along the z-axis than alast position of a second tray. For example, in embodiment 450, the lastposition of receptacle A2 is located at ten unit lengths along thez-axis, while the last position of receptacle A3 is located at p unitlengths along the z-axis and the last position of receptacle A4 islocated q unit lengths along the z-axis. Thus, p may not be equal to qwhich may not be equal to ten.

Of course, it should be understood that any other appropriate coordinatesystem or other method of uniquely identifying each position is withinthe scope of the present invention. The exemplary identification systemsprovided herein are for illustrative purposes only.

Referring now to FIG. 5, illustrated therein is a block diagram of anembodiment of a system consistent with the present invention. Morespecifically, FIG. 5 is a block diagram of a vending machine 500 thatmay be operable to perform one or more functions described herein.

The vending machine 500 may include a processor 505, such as one or moreIntel® Pentium® processors. The processor 505 may include or beoperatively connected to one or more clocks or timers (not pictured) andone or more communication ports 565 via which the processor 505 maycommunicate, in accordance with some embodiments, with other devicessuch as one or more peripheral devices, one or more controllers, one ormore peripheral devices, and/or one or more user devices. The processor505 is also in communication with a data storage device 510. The datastorage device 510 may include any appropriate combination of magnetic,optical and/or semiconductor memory, and may include, for example,additional processors, communication ports, Random Access Memory(“RAM”), Read-Only Memory (“ROM”), a compact disc and/or a hard disk.

The processor 505 and the data storage device 510 may each be, forexample: (i) located entirely within a single computer or othercomputing device; or (ii) operatively connected to each other by aremote communication medium, such as a serial port cable, a LAN, atelephone line, radio frequency transceiver, a fiber optic connection orthe like. In some embodiments for example, the vending machine 500 maycomprise one or more computers (or processors 505) that are connected toa remote controller computer operative to maintain databases, where thedata storage device 510 is comprised of the combination of the remotecontroller computer and the associated databases.

The data storage device 510 stores a program 515 for controlling theprocessor 505. The processor 505 performs instructions of the program515, and thereby operates in accordance with the present invention, andparticularly in accordance with the methods described in detail herein.The present invention may be embodied as a computer program 515developed using an object oriented language that allows the modeling ofcomplex systems with modular objects to create abstractions that arerepresentative of real world, physical objects and theirinterrelationships. However, it would be understood by one of ordinaryskill in the art that the embodiments of the invention as describedherein can be implemented in many different ways using a wide range ofprogramming techniques as well as general purpose hardware systems ordedicated controllers.

The program 515 may be stored in a compressed, uncompiled and/orencrypted format. The program 515 furthermore may include programelements that may be generally useful, such as an operating system, adatabase management system and device drivers for allowing the processor505 to interface with computer peripheral devices. Appropriate generalpurpose program elements are known to those skilled in the art, and neednot be described in detail herein.

Further, the program 515 is operative to execute a number ofinvention-specific, objects, modules and/or subroutines which mayinclude (but are not limited to) one or more subroutines to determinewhether an inventory database should be updated; whether a pricedisplayed for a receptacle should be updated; whether a promotion shouldbe output and/or one or more subroutines to determine whether a vendingof a particular unit of product should be facilitated. Examples of someof these subroutines and their operation are described in detail belowin conjunction with the flowcharts depicted in FIGS. 13 through 17.

According to some embodiments of the present invention, the instructionsof the program 515 may be read into a main memory of the processor 505from another computer-readable medium, such from a ROM to a RAM.Execution of sequences of the instructions in the program 515 causesprocessor 505 to perform the process steps described herein. Inalternative embodiments, hard-wired circuitry or integrated circuits maybe used in place of, or in combination with, software instructions forimplementation of the processes of the present invention. Thus,embodiments of the present invention are not limited to any specificcombination of hardware, firmware, and/or software.

In addition to the program 515, the data storage device 510 is alsooperative to store one or more databases, such as (i) an productinventory database 520, (ii) a product price database 525, and (iii) atransaction history database 530. The databases 520, 525 and 530 areeach described in detail below and example structures are depicted withsample entries in the accompanying figures. As will be understood bythose skilled in the art, the schematic illustrations and accompanyingdescriptions of the sample databases presented herein are exemplaryarrangements for stored representations of information. Any number ofother arrangements may be employed besides those suggested by the tablesshown. For example, even though three separate databases areillustrated, the invention could be practiced effectively using one,two, four or more functionally equivalent databases.

Similarly, the illustrated entries of the databases represent exemplaryinformation only; those skilled in the art will understand that thenumber and content of the entries can be different from thoseillustrated herein.

Further, despite the depiction of the databases as tables, anobject-based model could be used to store and manipulate the data typesof the present invention and likewise, object methods or behaviors canbe used to implement the processes of the present invention. Examples ofsome of these processes are described below in detail with respect toFIGS. 13 through 17.

Vending machine 500 may comprise payment processing mechanism(s) 550.The payment processing mechanism(s) 550 may comprise one or moremechanisms for receiving payment and dispensing change, including a coinacceptor, a bill validator, a card reader (e.g. a magnetic stripereader) and a change dispenser.

In a manner known in the art, a magnetic stripe card reader may readdata on the magnetic stripe of a credit or debit card, and it maycooperate with conventional point-of-sale credit card processingequipment to validate card-based purchases through a conventionaltransaction authorization network. Suitable card-based transactionprocessing systems and methods are available from USA Technologies,Inc.™ of Wayne, Pa.

The coin acceptor, bill validator and change dispenser may communicatewith a currency storage apparatus (a “hopper”; not shown) and maycomprise conventional devices such as models AE-2400, MC5000, TRC200 byMars, Inc.™ of West Chester, Pa., or CoinCo™ model 9300-L.

The coin acceptor and bill validator may receive and validate currencythat is stored by the currency storage apparatus. Further, a billvalidator or coin acceptor may be capable of monitoring stored currencyand maintaining a running total of the stored currency, as is discussedwith reference to U.S. Pat. No. 4,587,984, entitled COIN TUBE MONITORMEANS, the entirety of which is incorporated by reference herein for allpurposes. The change dispenser activates the return of coinage to thecustomer where appropriate (e.g. where a customer rejects or otherwisefails to accept a dynamically priced upsell offer). Such apparatus mayfeature Multidrop Bus (MDB) and/or Micromech peripheral capabilities, asis known in the art.

In another embodiment, a vending machine in accordance with the presentinvention may be configured to receive payment authorization and productselection commands through a wireless device communication network,directly or indirectly, from a customer device (e.g. a cellulartelephone). In such an embodiment, a payment processing mechanism maycomprise a cellular transceiver operatively connected to a processor, asdescribed herein. Systems and methods allowing for the selection of andpayment for vending machine articles through cellular telephones areprovided by USA Technologies, Inc.™. Further, in such an embodiment, acustomer cellular telephone may serve as an input/output device, asdescribed herein.

Further details concerning vending machine payment processing mechanismsare well known in the art, and need not be described in further detailherein.

The vending machine 500 may further comprise an output device 555 and aninput device 560. It should be understood that, although only a singleoutput device 555 and a single input device 560 is illustrated in FIG.5, any number of output devices and/or input devices may be used.

In accordance with embodiments of the presenting invention, a vendingmachine may include an input device for receiving input from (i) acustomer indicating a product and/or offer selection, and/or (ii) anoperator during stocking or maintenance of the vending machine. Also, avending machine may include one or more output devices for outputtingproduct and/or promotion information to a customer or operator.

Many combinations of input and output devices may be employed inaccordance with embodiments of the present invention. For example, inembodiments which feature touch screens (described herein), input andoutput functionality may be provided by a single device.

As described, a vending machine may include more than one input device.For example, a vending machine may include an exterior input device forreceiving customer input and an interior input device for receivingoperator input. In some embodiments, however, the input device providesthe dual functionality of receiving input data from both operators andcustomers.

As also described, a vending machine may comprise more than one outputdevice. For example, a vending machine may include both an LiquidCrystal Display (LCD) screen and several Light Emitting Diodes (LEDs).

Output device 555 may comprise, for example, an LCD and/or one or moreLEDs displays (e.g., several alphanumeric LEDs on the shelves of avending machine, each LED being associated with a receptacle).

In one embodiment, an LED display screen may be mounted atop a vendingmachine (e.g., attached thereto, such as via bolts or other mountinghardware). Such a mounted LED display screen and may be used tocommunicate promotions and other messages (e.g., product advertisements)to prospective customers. A suitable LED display screen for such anembodiment may be housed in an aluminum case having a length of 27.5″, aheight of 4.25″, and a depth of 1.75″. Such a display screen may have adisplay area capable of showing 13 alphanumeric and/or graphicalcharacters. Further, such an LED display screen may comprise a serialcomputer interface, such as an RJ45/RS232 connector, for communicatingwith a processor, as described herein. Further still, such an LEDdisplay may be capable of outputting text and graphics in several colors(e.g., red, yellow, green, black) regarding current and upcomingpromotions.

Further, in some embodiments, an output device comprises a printer. Inone embodiment, a printer is configured to print on card stock paper(e.g. 0.06 mm to 0.15 mm thickness), such as the EPSON EU-T400 SeriesKiosk Printer. Further, a printer may be capable of thermal lineprinting of various alphanumeric and graphical symbols in various fontsizes (e.g. raging from 9 to 24 point) on various types of paper.Additionally, such a printer may communicate with a processor (describedherein) via an RS232/IEEE 12834 and/or bi-directional parallelconnection. Such a printer may further comprise a 4 KB data buffer.

Additionally, in some embodiments, an output device comprises an audiomodule, such as an audio speaker, that outputs information to customersaudibly.

Input device 560 may comprise one or more of (1) a set of alpha-numerickeys for providing input to the vending machine, such as theProgrammable Master Menu® Keypad, (2) a selector dial, (3) a set ofbuttons associated with a respective set of item dispensers, (4) amotion sensor, (5) a barcode reader, (6) a voice recognition module, (7)a Dual-Tone Multi-Frequency receiver/decoder, (8) a wireless device(e.g. a cellular telephone or wireless Personal Digital Assistant),and/or (9) any other conventional input device commonly employed by avending machine designer.

As described, in some embodiments, a touch-sensitive screen may beemployed to perform both input and output functions. Suitable,commercially available touch screens for use in accordance with thepresent invention are manufactured by Elo TouchSystems, Inc.™, ofFremont, Calif., such as Elo's AccuTouch™ series touch screens. Suchtouch screens may comprise: (i) a first (e.g., outer-most) hard-surfacescreen layer coated with an anti-glare finish, (ii) a second screenlayer coated with a transparent-conductive coating, (iii) a third screenlayer comprising a glass substrate with a uniform-conductive coating.Further, such touch screens may be configured to detect input within adetermined positional accuracy, such as a standard deviation of errorless than ±0.080-inch (2 mm). The sensitivity resolution of such touchscreens may be more than 100,000 touchpoints/in² (15,500touchpoints/cm²) for a 13-inch touch screen. For such touch screens, thetouch activation force required to trigger an input signal to theprocessor (described herein) via the touch screen is typically 2 to 4ounces (57 to 113 g). Additionally, touch screens for use in accordancewith embodiments of the present invention may be resistant toenvironmental stressors such as water, humidity, chemicals,electrostatic energy, and the like. These and other operational detailsof touch screens (e.g., drive current, signal current, capacitance, opencircuit resistance, closed circuit resistance, etc.) are well known inthe art and need not be described further herein.

Vending machine 500 may further comprise one or more inventory storageand dispensing mechanism(s) 570. Product inventory storage and productdispensing functions of a vending machine configured in accordance witha snack machine embodiment of the present invention may include one ormore of: (i) a drive motor, (ii) metal shelves, (iii) a product deliverysystem (e.g. a chute, product tray or other delivery bin, product traydoor, etc.), (iv) dual spiral (i.e. double helix) item dispensing rods,(v) convertible (i.e. extendable) shelves, and/or (vi) a refrigerationunit. In some embodiments, some or all components of the inventorystorage and dispensing mechanism(s) 570 may comprise product receptaclesas described herein. Further details concerning vending machineinventory storage and dispensing mechanisms are well known in the art,and need not be described in further detail herein.

In some embodiments, as described above with respect to FIG. 1, avending machine may be housed in a casing of the model 129 SnackShopmanufactured by Automatic Products™. In such embodiments, 3 removableshelves may be employed, together providing for 30 product rows and aninventory capacity of between 185 to 522 commonly vended snack products.

In one embodiment, a control system executes instructions for managingthe operation of the vending machine, and in particular in accordancewith the inventive functionality described herein. Such vending machinefunctions include, but are not limited to: (1) product pricing (e.g.,displaying prices via an LED, changing such prices where appropriate,etc.), (2) processing vending transactions by (i) receiving customerselections via an input device, (ii) processing payment via a paymentprocessing mechanism, (iii) actuating corresponding product dispensingmechanisms, (3) determining promotions to output to customers, (4)outputting promotions to customers via output devices (including displayof graphics/content on LCD and LED displays), (5) recording transactioninformation (inventory levels, acceptance rates for promotions, etc.)and (6) updating inventory information such as locations of units ofproducts within receptacles of the vending machine.

In some embodiments, machine components (e.g., machine hardware,including mechanical hardware such as input devices, output devices,product dispensing mechanisms, and payment processing mechanismsincluding coin acceptors, bill validators, card readers, changedispensers, etc.) may be controlled by the control system through astandard RS-232 serial interface. In such embodiments, embeddedAPI/devices may be used to enable software to actuate/control vendingmachine components via RS-232 connectivity. Such vending machinecomponents may be operatively connected to the control system directlyor indirectly, in any manner that is practicable. Alternatively, machinecomponents may communicate with the control system through a UniversalSerial Bus “USB” standard (e.g., USB ports may allow “plug-and-play”installation of machine components).

Referring now to FIG. 6A, a block diagram of a system 600 according toat least one embodiment of the present invention includes a controller605 that is in communication, via a communications network 610, with oneor more vending machines 615. The controller 605 may communicate withthe vending machines 615 directly or indirectly, via a wired or wirelessmedium such as the Internet, LAN, WAN or Ethernet, Token Ring, or viaany appropriate communications means or combination of communicationsmeans. Each of the vending machines 615 may comprise computers, such asthose based on the Intel® Pentium® processor, that are adapted tocommunicate with the controller 605. Any number and type of vendingmachines 615 may be in communication with the controller 605. In oneembodiment, a vending machine 615 is substantially similar to thevending machine 500 (FIG. 5).

Communication between the vending machines 615 and the controller 605,and among the vending machines 615 (which communicate via communicationnetwork 620), may be direct or indirect, such as over the Internetthrough a Web site maintained by controller 605 on a remote controlleror over an on-line data network including commercial on-line serviceproviders, bulletin board systems and the like. In yet otherembodiments, the vending machines 615 may communicate with one anotherand/or controller 605 over RF, cable TV, satellite links and the like.

Some, but not all, possible communication networks that may comprisenetwork 610 and/or network 620 or be otherwise part of system 600include: a local area network (LAN), a wide area network (WAN), theInternet, a telephone line, a cable line, a radio channel, an opticalcommunications line, a satellite communications link. Possiblecommunications protocols that may be part of system 600 include:Ethernet (or IEEE 802.3), SAP, ATP, Bluetooth™, and TCP/IP.Communication may be encrypted to ensure privacy and prevent fraud inany of a variety of ways well known in the art.

Those skilled in the art will understand that devices in communicationwith each other need not be continually transmitting to each other. Onthe contrary, such devices need only transmit to each other asnecessary, and may actually refrain from exchanging data most of thetime. For example, a device in communication with another device via theInternet may not transmit data to the other device for weeks at a time.

In an embodiment, the controller 605 may not be necessary and/orpreferred. For example, the present invention may, in one or moreembodiments, be practiced on a stand-alone vending machine 500 and/or avending machine 500 in communication only with one or more other vendingmachines 500. In such an embodiment, any functions described asperformed by the controller 605 or data described as stored on thecontroller 605 may instead be performed by or stored on one or morevending machines 500.

It should be noted that, in the embodiment of FIG. 6A, some of thefunctionality described with reference to FIG. 5 as being performed byvending machine 500 may instead or in addition be performed bycontroller 605. For example, controller 605 may store an indication of arelationship among a unit of a product stored in the vending machine anda location of the unit within the vending machine or a receptacle of thevending machine. Similarly, any data described with reference to FIG. 5as being stored in a memory of vending machine 500 may, in theembodiment of FIG. 6A, be instead or in addition stored in a memory ofcontroller 605. For example, data associated with past transactionscompleted at a vending machine 500 may be stored in a memory ofcontroller 605.

It should further be noted that controller 605 may comprise one or morecomputing devices (e.g., working in cooperation with one another) thatmay or may not be located remotely to one another or remotely to one ormore of the vending machines 500.

Referring now to FIG. 6B, a block diagram of another system 650according to at least one embodiment of the present invention includes acontroller 605 that is in communication, via a communications network610, with one or more vending machines 500. A difference between system600 (FIG. 6A) and system 650 (FIG. 6B) is that in system 650 at leastone vending machine 500 is also in communication with one or moreperipheral devices 655 (defined above). A peripheral device 655 may, inturn, be in communication with a peripheral device controller 660 (viacommunication network 675). In some embodiments, a peripheral device 655may also or instead be in communication with controller 605 (viacommunication network 690), one or more vending machines 500 (viacommunication network 665) and/or one or more user devices (not shown).In one or more embodiments the peripheral device controller 660 may bein communication with one or more vending machines 500 (viacommunication network 680) and/or controller 605 (via communicationnetwork 685).

Any of the controller 605, the vending machines 500, the peripheraldevices 655 and/or the peripheral device controller 660 may communicatewith one another directly or indirectly, via a wired or wireless mediumsuch as the Internet, LAN, WAN or Ethernet, Token Ring, or via anyappropriate communications means or combination of communications means.For example, the controller 605 may communicate directly with one of thevending machines 500 (e.g., via a LAN) and indirectly (e.g., via avending machines 500) with a peripheral device 655. In another example,the controller 605 may communicate with one of the vending machines 500via a LAN and with another of the vending machines 500 via the Internet.

Any and all of the controller 605, the vending machines 600, theperipheral devices 655 and the peripheral device controller 660 maycomprise computers, such as those based on the Intel® Pentium®processor. Further, in one or more embodiments, each of the peripheraldevices 655 may comprise an external or internal module associated withone or more of the vending machines 500 that is capable of communicatingwith one or more of the vending machines 500 and of directing the one ormore vending machines 500 to perform one or more functions.

Any number of vending machines 500 may be in communication with thecontroller 605. Any number and type of peripheral devices 655 may be incommunication with a vending machine 500, peripheral device controller660 and controller 605.

Communication between any of the controller 605, the vending machines500, the peripheral devices 655 and the peripheral device controller660, among the vending machines 500 and among the peripheral devices 655may be direct or indirect, such as over the Internet through a Web sitemaintained by controller 605 on a remote controller or over an on-linedata network including commercial on-line service providers, bulletinboard systems and the like. In yet other embodiments, any and all ofcontroller 605, the vending machines 500, the peripheral devices 655 andthe peripheral device controller 660 may communicate with one anotherover RF, cable TV, satellite links and the like.

Some, but not all, possible communication networks that may comprise anyor all of the network 610, 620, 665, 670, 675, 680, 685 and 690, or thatotherwise may be part of system 650 include: a local area network (LAN),a wide area network (WAN), the Internet, a telephone line, a cable line,a radio channel, an optical communications line, a satellitecommunications link. Possible communications protocols that may be partof system 650 include: Ethernet (or IEEE 802.3), SAP, ATP, Bluetooth™,and TCP/IP. Communication may be encrypted to ensure privacy and preventfraud in any of a variety of ways well known in the art.

In an embodiment, the controller 605 may not be necessary and/orpreferred. For example, the present invention may, in one or moreembodiments, be practiced on a stand-alone vending machine 500, one ormore vending machines 500 in communication with one or more peripheraldevices 655 (as illustrated in FIG. 6C), one or more vending machines500 in communication with peripheral device controller 660, one or moreperipheral devices 655 in communication with peripheral devicecontroller 660, and/or a vending machine 500 in communication only withone or more other vending machines 500. In such embodiments, anyfunctions described as performed by a particular device (e.g., by avending machine 500) or data described as stored in a memory of aparticular device (e.g., in a memory of a vending machine 500) mayinstead or in addition be performed by or stored in another of thedevices described herein (e.g., a peripheral device 655).

Similarly, peripheral device controller 660 may not be desired and/orneeded in some embodiments of the present invention. In embodiments thatdo not involve peripheral device controller 660, any or all of thefunctions described herein as being performed by peripheral devicecontroller 660 may instead be performed by controller 605, one or morevending machines 500, one or more peripheral devices 655, or acombination thereof. Similarly, in embodiments that do not involveperipheral device controller 660 any data described herein as beingstored in a memory of peripheral device controller 660 may instead bestored in a memory of controller 605, one or more vending machines 500,one or more peripheral devices 655, or a combination thereof.

Any or all of the vending machines 500 may, respectively, include or bein communication with a peripheral device 655. A peripheral device 655may be a device that obtains (e.g., receives or reads) information from(and/or transmits information to) one or more vending machines 500. Forexample, a peripheral device 655 may be operable to obtain informationabout transactions being conducted at a vending machine 500, such as theinitiation of a transaction, an amount of money deposited for atransaction and/or a product selected during a transaction. For example,a peripheral device 655 may monitor activities carried out by aprocessor of a vending machine 500.

In one or more embodiments, one or more such peripheral devices 655 maybe in communication with a peripheral device controller 660. This allowsthe peripheral device controller 660 to receive information regarding aplurality of transactions conducted at a plurality of vending machines500. The peripheral device controller 660, in turn, may be incommunication with the controller 605. It should be understood that anyfunctions described herein as performed by a peripheral device 655 mayalso or instead be performed by the peripheral device controller 660.Similarly, any data described herein as being stored on or accessed by aperipheral device 655 may also or instead be stored on or accessed bythe peripheral device controller 660.

A peripheral device 655 may be operable to access one or more databases(e.g., of peripheral device controller 660 or of the peripheral device655 or a combination thereof) to determine a promotion based on, forexample, one or more transactions initiated and/or completed at avending machine 500. A peripheral device 655 may also be operable toaccess one or more databases (e.g., a product inventory database and/ora transaction history database, each of which is described in detailbelow) to, for example, determine a promotion for output or to cause achange in a price displayed as associated with a receptacle of thevending machine.

The peripheral device controller 660 may also monitor promotions outputto customers of vending machines 500 over time to determine acceptancerates for various promotions. For example, in embodiments wherein acustomer is presented with a promotion at a vending machine 500 andresponds thereto by providing an acceptance or rejection of thepromotion via an input device of the vending machine 500 or an inputdevice of a peripheral device 655, the peripheral device controller 660may track which promotions are accepted by customers and subsequentlyuse that information to select or otherwise determined promotions foroutput to customers. Further, information about a transaction obtainedor accessed by peripheral device controller 660 may be analyzed, e.g.,to identify the circumstances under which a promotion is most likely tobe accepted by a customer. Based upon desired objectives, the peripheraldevice controller 660 may direct the appropriate peripheral device 655to output customized promotions to a customer of a vending machine basedon the circumstances of a transaction initiated by the customer.

Information received by a peripheral device 655 from a vending machine500 may include inventory data such as an indication of a unit ofproduct that was vended (and, e.g., which receptacle the product wasvended from), an actual rate at which a particular product is selling, anumber of transactions per unit of time, a coin inventory, a productinventory and/or a selection of a product by a customer currentlyconducting a transaction at the vending machine.

An example of a peripheral device that may comprise a peripheral device655 is the e-Port™ by USA Technologies Inc. The e-Port™ is a credit andsmart card-accepting unit that controls access to office and MDB vendingequipment, and serves as a point of purchase credit card transactiondevice. The e-Port™ includes an LCD that allows for the display of colorgraphics, and a touch sensitive input device (touch screen) that allowsusers to input data to the device. The display may be used to promptusers interactively with, e.g., promotions and information about theirtransaction status.

A peripheral device 655 may be operable to receive input from customers,receive payment from customers, exchange information with a remotelylocated controller (e.g., controller 605 and/or peripheral devicecontroller 660) and/or display messages to customers (e.g., promotioncontent). A peripheral device 655 may be operable to instruct a vendingmachine 500 that appropriate payment has been received (e.g., via acredit card read by the separate device) and/or that a particularproduct should be dispensed by the vending machine. Further, aperipheral device 655 may be operable to instruct the vending machine toexecute promotions or price changes.

The functions described herein as being performed by a peripheral devicecontroller 660 and/or a peripheral device 655 may, in one or moreembodiments, be performed by the controller 605 (in lieu of or inconjunction with being performed by a peripheral device controller 660and/or a peripheral device 655). Such functions may be performed bycontroller 605 in either system 600 (FIG. 6A) or system 650 (FIG. 6B).

In one or more embodiments, a peripheral device 655 may be useful forimplementing the embodiments of the present invention into the operationof a conventional vending machine. For example, in order to avoid orminimize the necessity of modifying or replacing a program alreadystored in a memory of a conventional vending machine, an external orinternal module that comprises a peripheral device 655 may be insertedin or associated with the vending machine. For example, a conventionalvending machine may be retrofitted with a peripheral device 655 in orderto implement one or more embodiments of the present invention.

A peripheral device 655 may include (i) a communications port (e.g., forcommunicating with one or more vending machines 500, peripheral devicecontroller 660, another peripheral device 655, and/or controller 605);(ii) a display (e.g., for graphics and/or text associated with apromotion), (iii) another output means (e.g., a speaker and/or light tocommunicate with a customer), and/or (iv) a benefit providing means(e.g., a printer and paper dispensing means).

In one or more embodiments, the peripheral device 655 may direct avending machine to perform certain functions. For example, a programstored in a memory of peripheral device 655 may cause a processor of avending machine 500 to perform certain functions. For example, a programstored in a memory of peripheral device 655 may cause a processor of avending machine to dispense one or more products, dispense a monetaryamount, refrain from dispensing a monetary amount, refrain fromoutputting a product, and/or communicate with another device.

Note that, in one or more embodiments, a vending machine 500 and aperipheral device 655 that is associated with the vending machine 500may not communicate directly with one another at all. In someembodiments, however, each may communicate with a computer or otherdevice. For example, a vending machine 500 may communicate withcontroller 605 and an associated peripheral device 655 may communicatewith peripheral device controller 660 and/or controller 605. Forexample, if both vending machine 500 and peripheral device 655 are incommunication with controller 605, each may obtain informationassociated with the other through controller 605.

It should be noted that in either the system 600 (FIG. 6A) or the system650 (FIG. 6B), the controller 605 and/or the peripheral devicecontroller 660 may be accessible, directly or indirectly, via anothercomputer (communicating, e.g., over the Internet or other network) by acustomer or another entity. Accordingly, a customer or other entity(e.g., an operator of the vending machine) of the other computer couldcommunicate with the controller 605 and/or peripheral device controller660 (e.g., via a Web browser).

In one embodiment, the other computer may be operable to receive data,e.g., from the controller 605 and/or peripheral device controller 660.For example, the computer could receive messages (e.g., promotions)described herein as being output by the vending machine or peripheraldevice.

In one embodiment, the computer may be operable to transmit data to thecontroller 605 and/or peripheral device controller 660 (e.g., datadescribed herein as being provided to the vending machine). For example,the computer may be operable to transmit an indication of products beingstocked in the vending machine and, e.g., an indication of a location ofeach unit of product being stocked. In another example, the computer maybe operable to transmit an indication of a respective price associatedwith each product that is being stocked, or may be stocked, in thevending machine.

Similarly, various data described herein as received through an inputdevice of a vending machine 500 and/or peripheral device 655 may bereceived through a Web browser communicating with the controller 605and/or peripheral device controller 660, which in turn communicates withthe vending machine 500. Thus, an owner/operator of the vending machinemay have remote polling and reporting capabilities, may be able totransmit inventory information, prices and/or new business rules to thevending machine 500, and the like.

In one embodiment, an operator of the vending machine restocking thevending machine may utilize a portable device to transmit inventoryinformation, price and/or new business rules to the vending machineand/or a peripheral device of the vending machine.

Referring now to FIG. 6C, a block diagram of another system 695according to at least one embodiment of the present invention includes avending machine 500 that is in communication with a peripheral device655. As described above, a prior art vending machine 500 may beretrofitted with a peripheral device 655. The peripheral device 655 maybe operable to perform at least some of the methods of the presentinvention and/or to direct the vending machine 500 to perform at leastsome of the methods of the present invention, without requiring acontroller 605 and/or a peripheral device controller 660. For example,in one embodiment, a peripheral device may comprise a camera operable tocapture an image of a vending machine and/or a product located in afirst position of a receptacle of the vending machine. In one or moreembodiments, the vending machine 500 and/or the peripheral device 655may be accessible from a remote location via a communication port.

4. Databases

Embodiments of the present invention may be implemented using one ormore databases. As indicated above, it should be noted that although theexample embodiment depicted in FIG. 5 includes three particulardatabases stored in data storage device 510 of a vending machine 500,other database arrangements may be used which would still be in keepingwith the spirit and scope of the present invention. In other words, thepresent invention could be implemented using any number of differentdatabase files or data structures, as opposed to the three depicted inFIG. 5. Further, the individual database files could be stored ondifferent controllers (e.g. located on different storage devices indifferent geographic locations, such as on a peripheral device 655,controller 605, peripheral device controller 660 or a combinationthereof). Likewise, the program 515 could also be located remotely fromthe data storage device 510 and/or on another controller. As indicatedabove, the program 515 may include instructions for retrieving,manipulating, and storing data in the databases 520, 525 and 530, as maybe useful in performing the methods of the invention as will be furtherdescribed below.

Turning to FIGS. 7A and 7B, illustrated therein is a tabularrepresentation of an embodiment 700 of the product inventory database520 (FIG. 5). FIG. 7A illustrates a state of the product inventorydatabase before a product is vended from position “001” while FIG. 7Billustrates the state of the database after the unit of product isvended from position “001.” The tabular representation 700 of theproduct inventory database includes a number of example records orentries, each of which defines a unit of a product available for salefrom a vending machine. Those skilled in the art will understand thatthe product inventory database may include any number of entries. Thetabular representation of product inventory database also defines fieldsfor each of the entries or records. The fields specify: (i) a position705 of a unit of a product within the vending machine, (ii) anidentification of a unit of product 710 located in the correspondingposition, and (iii) an indication of whether the corresponding positionis a first position of a receptacle (i.e., whether the unit of product(if any) stored in that position is available for immediate vending).

As described herein, a vending machine operating in accordance withembodiments of the present invention may store or have access toinformation, for each unit of product stored in the vending machine,allowing a relationship among a unit and a location of the unit in areceptacle of the vending machine to be determined.

For example, the vending machine may be operable to determine anidentity of a unit stored in a position of the vending machine based ona determined position of the vending machine. In an even more specificexample, the vending machine may be operable to determine what productis stored in the first slot of tray “A-1”. Such a determination may beperformed, for example, in a subroutine for determining what priceshould be displayed as associated with tray “A-1”.

In another example, a vending machine may be operable to determine whichposition(s) units of a particular product are located in. In a morespecific example, a vending machine may receive a request to purchase aparticular product (e.g., Reese's™ Peanut Butter Cups) and, afterdetermining that this product is not immediately available for vending(e.g., the product is not located in a first position of anyreceptacle), the vending machine may be operable to determine where theproduct is located. For example, the vending machine may be operable todetermine that the product is located in a second position of aparticular receptacle. In some embodiments, the vending machine may thenbe operable to cause an event to facilitate the vending of the productin the first position in order to make the product in the secondposition available for sale. For example, if the vending machinedetermines that a package of Doritos™ chips is located in a firstposition of a particular receptacle and that the package of Reese's™Peanut Butter Cups is located in the second position of the receptacleand should be made available for immediate vending, the vending machinemay output a promotion for a package deal that includes the Doritos™.For example, the vending machine may output a promotion for a package ofDoritos™ and a package of Reese's™ Peanut Butter Cups for a packageprice that is less than the sum of the prices for these individualproducts.

Various methods of utilizing information in the product inventorydatabase are described below in Section 5.

Returning now to table 700, the position field 705 stores a uniqueposition identifier for each position available for holding productswithin the vending machine. In the embodiment of table 700, eachposition is identified by a unique number. The positions identified intable 700 correspond to the positions illustrated in FIG. 3B. Thus, avending machine having the receptacles illustrated in the plan view ofFIG. 3B may store an indication of what product, if any, is located ineach position of each receptacle.

The product field 710 stores an identifier of a product located in eachrespective position. Thus, as the first record of table 700 indicates,position “001” holds product “A”. The identifications of the productslocated in each position in table 700 corresponds to the plan view ofFIG. 3A. Thus, the vending machine storing units of products asindicated in the plan view of FIG. 3A may store an indication of theplacement of the products as embodied in table 700. It should be notedthat although a vending machine has been described as storing a productinventory table or storing product placement information, in someembodiments the vending machine itself may not store this informationbut may rather have access to this information. For example, theinformation may be stored in a memory of another device (e.g., acontroller) with which the vending machine is operable to communicate.

In one embodiment, each product in the vending machine may be equippedwith a radio frequency identification (RFID) tag, readable by thevending machine. For example, the vending machine may include one ormore radio frequency reader devices operable to receive the informationfrom such tags. An RFID tag of a product may include information such asthe expiration date of the product and an identification of the product(e.g., bar code uniquely identifying the product via, for example, aStock Keeping Unit). U.S. patent application Ser. No. 10/213,167, filedAug. 6, 2002 in the name of McGarry et al. and entitled VENDING AUDITSYSTEM describes a RFID tag system usable in a vending machine. Theentirety of U.S. patent application Ser. No. 10/213,167 is incorporatedby reference herein for all purposes.

In one embodiment, a camera may be positioned to capture the unit ofproduct in a first position of a receptacle at any given time. The imagecaptured by such a camera may be analyzed and the information utilizedto update the product inventory database. Such a camera may bepositioned, for example, (i) across from a vending machine with the lensangled towards the front of the vending machine, (ii) on the vendingmachine with the lens angled towards the partition of the vendingmachine, or (iii) inside the vending machine with the lens angledtowards the first position of one or more receptacles.

In one embodiment, the information in product inventory database 520 isinput by an operator of a vending machine (e.g., at a time the operatoris refilling the vending machine with inventory). Various methods ofloading a vending machine with inventory and inventory and pricinginformation are described below in Section 5.

It should be noted that, for simplicity, the product identifiers intable 700 and elsewhere in the present application are indicated as asingle letter (e.g., “A”, “B”, “C”, etc.). However, an identifier of aproduct may be of any form. For example, a bar code or informationencoded in a bar code format may be stored as a product identifier. Inanother example, a bar code may be a trademark or brand name of aproduct (e.g., “Pepperidge Farm™ Milano™ Cookies). In yet anotherexample, a product identifier may be a description of the product (e.g.,“chocolate covered mints, bite-size”). In yet another embodiment, aproduct identifier may be an identifier assigned to the product by avending machine operator to identify the product (e.g., “P-101-33”)based on a product identification system utilized by the operator. Inone embodiment, more than one product identifier may be stored for asingle product. For example, a product located in a particular positionmay be identified by storing both its bar code and its trademark orbrand name.

For purposes of illustrating an embodiment in a particular set ofcircumstances, the data in table 700 of FIG. 7A corresponds to theinventory status illustrated in the plan view of FIG. 3A and thepositions illustrated in the plan view of FIG. 3B. Thus, positions “001”through “004” (the first four positions of receptacle “A1”) are eachdepicted in table 700 of FIG. 7A as storing a respective unit of product“A” while positions “005” through “010” (the last six positions ofreceptacle “A1”) are each depicted in table 700 as storing a respectiveunit of product “B”.

Referring now to FIG. 7B, illustrated therein is table 700 depicting astatus in inventory after the vending of a unit of product “A” fromposition “001”. Thus, positions “001” through “003” (the first threepositions of receptacle “A1”) are each depicted in table 700 of FIG. 7Bas storing a respective unit of product “A” while positions “004”through “090” (the next six positions in receptacle “A1”) are eachdepicted as storing a respective unit of product “B”. Position “010”(the last position of receptacle “A1”) is depicted as being empty.

Thus, for example, a vending machine storing the table 700 of FIG. 7Bmay, in some circumstances, determine that it would be advantageous toan operator of the vending machine to sell the unit of product “B” thatis currently in position “004”. For example, the vending machine maydetermine that a customer desires to purchase the unit of product “B” orthat the unit of product “B” is approaching its expiration date.Accordingly, the vending machine may cause an event to facilitate thevending of the units of product “A” that are currently stored inpositions “001” through “003”. For example, the vending machine maydetermine and output an offer to sell these units of product “A” for 50%of their regular price.

Referring now to FIG. 8A, illustrated therein is an embodiment of aproduct inventory database 520 in the form of tabular representation800. The tabular representation 800 of the product inventory databaseincludes a number of example records or entries, each of which defines aunit of a product available for sale from a vending machine. Thoseskilled in the art will understand that the product inventory databasemay include any number of entries. The tabular representation 800 ofproduct inventory database 520 also defines fields for each of theentries or records. The fields specify: (i) a position 805 of a unit ofa product within the vending machine, (ii) an indication of a unit ofproduct 810 located in the corresponding position and (iii) a price 815of the corresponding unit of the product. Thus, the tabularrepresentation 800 of the product inventory database 520 stores anindication of pricing. In other embodiments, pricing information forproducts available from a vending machine may be stored in a differenttable or database.

Assume, for exemplary purposes only, that tabular representation 800represents a product inventory database 800 of a vending machine thatincludes eight receptacles, arranged in five columns and eight rows: A1through A5 in the top row, B1 through B5 in the second row, C1 throughC5 in the third row, D1 through D5 in the fourth row, E1 through E5 inthe fifth row, F1 through F5 in the sixth row, G1 through G5 in theseventh row, and H1 through H5 in the eighth and bottom row. Of course,any number of receptacles arranged in any configuration may be used.Assume further that at least receptacle A1 includes six positions. Ofcourse, any number of positions may be used. Further, as discussedabove, different receptacles in a single vending machine may includedifferent numbers of positions. For example, a first receptacle mayinclude a first number of positions while a second receptacle mayinclude a second number of positions, wherein the first number does notequal the second number.

Differences between tabular representation 800 and tabularrepresentation 700 (FIGS. 7A and 7B) include the format of the positionidentifier, the format of the product identifier, and the inclusion of aprice for each position. As described with reference to FIG. 7A, manydifferent formats for product identifiers and position identifiers maybe used. In tabular representation 800, the position identifiercomprises an indication of the receptacle in which the position ofreference is located (e.g., “tray A1”) and an indication of the slotwithin the receptacle. Thus, for example, position identifier “A1-1” maydefine the first position (i.e., first from the front of the vendingmachine) in tray “A1”. It should be noted that a receptacle identifier(e.g., “A1”) may identify the row and column in which the receptacle islocated, as is known in the art.

FIG. 8B illustrates tabular representation 800 after units of producthave been vended, thus reflecting a change in the data. Moreparticularly, tabular representation 800 of FIG. 8B illustrates theproduct inventory data after the Snickers™ Bar in position “A1-1” hasbeen vended and after the Milano™ Cookies in position H5-5 have beenvended. Thus, each of the units of product remaining in receptacle “A1”is moved forward by one position and each of the units of productremaining in receptacle “H5” is moved forward by one position and thetabular representation 800 reflects this change in positions. FIG. 8A,illustrating the tabular representation before the vending of the unitsof product, illustrates that positions “A1-1” through “A1-3” each hold arespective unit of a Snickers™ Bar while positions “A1-4” through “A1-6”each hold a respective unit of Reese's™ Cups and that positions “H5-5”and “H5-6” each hold a respective unit of Milano™ Cookies. FIG. 8Billustrates that, after the vending of the Snickers™ Bar from position“A1-1”, positions “A1-1” through “A1-2” each store a respectiveSnickers™ Bar while positions “A1-3” through “A-5” each store arespective unit of “Reese's™ Cups”. Position “A1-6” is empty. FIG. 8Bfurther illustrates that, after the vending of the Milano™ Cookies fromposition “H5-5”, position “H5-5” still holds a unit (albeit a differentunit) of Milano™ Cookies while position “H5-6” is empty.

It should be noted that, when a change of data occurs in a productinventory database, the data prior to the change may be stored forfuture reference. Thus, for example, in one embodiment a new table maybe generated and populated with the updated data (and, e.g., a timestamp or other indication that this is the current inventory status)while the table storing the data prior to the change may remain storedin memory. In other embodiments, the new data may simply replace the olddata in the table. An indication of products vended may instead, or inaddition, be stored in a transaction database, as described below.

Other data besides that illustrated in tabular representations 700 and800, respectively, may be stored in product inventory database 520. Forexample, an indication of units of products previously stored in areceptacle (e.g., within the current fill period) but vended may bestored. In another example, a time stamp or other indication of a timeat which, or order in which, a unit of product was loaded into thevending machine relative to one or more other units of product may alsobe stored. For example, an indication of a time (e.g., date and/or timeof day) at which a unit of product was loaded into the vending machinemay be stored in association with the unit.

Referring now to FIG. 9A illustrated therein is an embodiment of aproduct inventory database 520 in the form of tabular representation900. The tabular representation 900 of the product inventory databaseincludes a number of example records or entries, each of which defines anumber of units of a product available for sale from a vending machine.Those skilled in the art will understand that the product inventorydatabase may include any number of entries. The tabular representation900 of product inventory database 520 also defines fields for each ofthe entries or records. The fields specify: (i) a receptacle identifier905 that identifies a receptacle within the vending machine, (ii) anindication of products located in the receptacle 910, (iii) a number ofunits 915, (iv) a loaded position rank 920, and (v) a current positionrank 925. Thus, the tabular representation 900 of the product inventorydatabase 520 stores an indication of an order in which units of productswere loaded into a receptacle of a vending machine as well as anindication of an order in which units of products are currently storedin a receptacle of a vending machine.

The number of units 915 stores an indication of a block or number ofunits that are associated with one another and stored in series in aparticular receptacle of the vending machine (e.g., as defined by anoperator of a vending machine). A number or block of units may beassociated with one another, for example, because they are units of thesame product or are units of products that sell for the same price. Itshould be noted that a block or number of units stored in field 915 maybe zero, one or a number greater than one.

The loaded position rank 920 stores an indication of the relative orderin which the different blocks of units indicated in fields 910 and 915were loaded into the corresponding receptacle of the vending machine.For example, the loaded position rank 920 may store (i) an indication of“1” to indicate the block of units that was loaded first into thereceptacle (e.g., with the first unit of the block being placed at thefront of the receptacle (i.e., into the first position of thereceptacle)); (ii) an indication of “2” to indicate the block of unitsthat was loaded second into the receptacle; and (iii) an indication of“3” to indicate the block of units that was loaded third into thereceptacle, etc. In a more specific example, assume an operator loadsthree bags of Chips into the front of a tray of a vending machine,followed by four bags of Popcorn, followed by two bags of Pretzels. Thebags of Chips may thus be assigned a loaded position rank of “1”, thebags of Popcorn may be assigned a loaded position rank of “2” and thebags of Pretzels may be assigned a loaded position rank of “3”, thusindicating that the receptacle was loaded (front to back) with the bagsof Chips first, then the bags of Popcorn, and then the bags of Pretzels.

The current position rank 925 stores an indication of the relative orderin which the different blocks of units indicated in fields 910 and 915are currently stored in the corresponding receptacle.

As is apparent from FIG. 9A, tabular representation 900 does notnecessarily include a record for each individual unit of product storedin a vending machine in association with a unique position identifiercorresponding to each unit. Rather, the tabular representation 900stores a record for each different block or number of units stored in areceptacle of a vending machine, along with an indication of a relativeorder in positioning within the receptacle of each block or number ofunits.

Assume, for exemplary purposes only, that the tabular representation 900stores product inventory data for a vending machine that includes areceptacle identified as “A1” and that this receptacle includes sixproduct positions (i.e., is operable to hold six individual units ofproduct). Assume further that each of the first two positions holds arespective unit of “Brand X Chocolate Bar” while each of the last fourpositions holds a respective unit of “Brand X Peanut Butter Cups”.Tabular representation 900 does not store a record for each position ofreceptacle “A1”, indicating that positions “A1-1” through “A1-2” eachhold a respective unit of product “Brand X Chocolate Bar” whilepositions “A1-3” through “A1-6” each hold a respective unit of product“Brand X Peanut Butter Cups”. Rather, tabular representation 900 insteadstores a record for each block or number of units that were loaded inseries and an indication of the relative order of each block.

For example, as illustrated in record R900-1, tabular representationstores an indication that two units of “Brand X Chocolate Bar” arelocated in series in receptacle “A1” and four units of “Brand X PeanutButter Cups” are located in series in receptacle “A1”. Further, as alsoillustrated in record R900-1, tabular representation 900 stores anindication that the two units of “Brand X Peanut Chocolate Bar” wereloaded first into the receptacle “A1” (as indicated in Loaded PositionRank 920) and the four units of “Brand X Peanut Butter Cups” were loadedsecond into the receptacle “A1” (as also indicated by Loaded PositionRank 920).

It should be noted that the relative order of positioning of the blocksof products within the corresponding receptacle may be indicated inother manners. For example, a unique identifier may be associated witheach block, where the unique identifier is assigned upon the loading ofthe block and the unique identifiers for the respective blocks arenumbered consecutively (such that the lowest numbered identifierindicates the block that was loaded first and the highest numberedidentifier indicates the block that was loaded last). In anotherembodiment, a time stamp may be associated with each block, indicatingthe time (e.g., date and time of day) that each block was loaded intothe receptacle.

It should further be noted that other methods of indicating a currentrelative positioning of the different blocks of products within aparticular receptacle may be used. For example, the tabularrepresentation 900 (or any product inventory database) may store a“vended” flag, indicating which blocks of products (or individual unitof product within a block) has been vended. Thus, in order to determinea current relative positioning of units of products within a particularreceptacle of a vending machine, the unit of product with the lowestrank that is not yet vended may be determined to be the next productimmediately available for vending, while the next lowest rank that isnot yet vended may be determined to be the product available for vendingafter that and so on.

Referring now to FIG. 9B, illustrated therein is tabular representation900 indicating a change in data (from the data of FIG. 9A) due to avending of three products from receptacles of the vending machine. Inparticular, FIG. 9B illustrates the change in data due to a vending ofone unit of product “Brand X Chocolate Bar” from receptacle A1, avending of one unit of product “Brand Y Soda” from receptacle A2, and avending of one unit of product “Brand Z Chips” from receptacle A3. Dueto this vending, the number of units 915 and the current position rank925 has been changed in each of records R900-1, R900-2 and R900-3 toindicate the updated inventory status.

Referring now to FIG. 10A, illustrated therein is an embodiment of aproduct inventory database 520 in the form of tabular representation1000. The tabular representation 1000 of the product inventory databaseincludes a number of example records or entries, each of which defines aunit of a product available for sale from a vending machine. Thoseskilled in the art will understand that the product inventory databasemay include any number of entries. The tabular representation 1000 ofproduct inventory database 520 also defines fields for each of theentries or records. The fields specify: (i) a Row field 1005, (ii) aColumn 1 field 1010, (iii) a Column 2 field 1015, (iv) a Column 3 field1020, (v) a Column 4 field 1025, (vi) a Column 5 field 1030 and (vii) aPosition field 1035.

Assume that the tabular representation 1000 stores product inventorydata for a vending machine that includes a plurality of receptacles, thereceptacles being arranged in four rows and five columns. Assume furtherthat each receptacle includes three positions for holding products.Thus, tabular representation 1000 comprises a matrix including a cellfor each position available within the vending machine, each cell of thematrix corresponding to a position in a particular row and column. Eachcell of tabular representation 1000 stores an identifier of the product,if any, a unit of which is located in the position identified by thecell. For example, tabular representation stores an indication that“Position 1” of “Row 1”, “Column 1” stores a unit of product “P-001-99”.

A dash in a cell indicates that the position identified by the cell iscurrently empty.

As can be determined from the data in tabular representation 1000, areceptacle may include more than one product and units of a particularproduct may be located in more than one receptacle. For example, blockof cells 1040 indicates that Row 1 of Column 3 includes one unit ofproduct “P-555-43” and two units of product “P-919-00”. Further, blockof cells 1045 indicates that product “P-555-43” is also located in Row1, Column 4. Similarly, block of cells 1050 indicates that Position 1 ofRow 4, Column 3 stores a single unit of product “P-103-1”. Block ofcells 1055 indicates that product “P-103-91” is also located in each ofPositions 2 and 3 of Row 4, Column 4, behind a unit of product“P-894-31”. Blocks of cells 1040, 1045, 1050 and 1055 will each bereferred to below in Section 5, for purposes of illustrating a use ofthe data in product inventory database 520 as embodied in tabularrepresentation 1000.

Referring now to FIG. 10B, illustrated therein is tabular representation1000, with data after a vending of product “P-555-43” from Position 1 ofRow 1, Column 3. As can be seen, the two units of product “P-919-00”that were previously stored in Position 2 and Position 3, respectively,of Row 1, Column 3, are now stored in Position 1 and Position 2,respectively of Row 1, Column 3. Position 3 of Row 1, Column 3 is nowempty.

Referring now to FIG. 11, illustrated therein is an embodiment of aproduct price database 525 in the form of tabular representation 1100.The tabular representation 1100 of the product price database includes anumber of example records or entries, each of which defines a price of aproduct that may be for sale or may be made available for sale from avending machine. Those skilled in the art will understand, upon readingthe present disclosure, that the product price database may include anynumber of entries. The tabular representation 1100 of product pricedatabase 525 also defines fields for each of the entries or records. Thefields specify: (i) a product identifier 1105 that identifies a productthat is stored or potentially may be stored in a vending machine, and(ii) a price 1110 corresponding to the product.

The product price database may be accessed by a vending machine to, forexample, determine a price to be displayed in association with areceptacle of the vending machine. For example, assume a unit of a firstproduct is vended from the vending machine and, as a result, a unit of asecond product is made available for vending. The vending machine may beoperable access product price database 525 to determine the priceassociated with the second product by retrieving the appropriate recordbased on the product identifier. The vending machine may further beoperable to determine whether the price associated with the secondproduct is different from a current price associated with the receptaclefrom which the unit of the second product is now available for vending.If the price is not the same, the vending machine may be operable tochange the price associated with the receptacle to be the priceassociated with the second product.

It should be noted that, in some embodiments, additional data may bestored in the product price database 525 (or a different table ordatabase). Some examples of additional data that may be associated witha product includes (i) a cost of a product (i.e., the cost of theproduct to the operator of the vending machine); (ii) an expiration dateof the product; (iii) a lowest acceptable price that the operator of thevending machine is willing to accept for the product; (iv) a discount atwhich the operator of the vending machine is willing to offer theproduct (and, in some embodiments, a rule indicating the circumstancesunder which the discount is to be applied); and/or (v) a sales rate(e.g., ideal, historical and/or current).

Referring now to FIG. 12, illustrated therein is an embodiment of atransaction database 530 in the form of tabular representation 1200. Thetabular representation 1200 of the transaction database includes anumber of example records or entries, each of which defines atransaction that has occurred at a vending machine. Those skilled in theart will understand that the transaction database may include any numberof entries. The tabular representation 1200 of transaction database 530also defines fields for each of the entries or records. The fieldsspecify: (i) transaction identifier 1205 that uniquely identifies atransaction; (ii) a transaction time 1210 that indicates a time at whicha transaction occurred (e.g., was initiated, payment was received, aproduct was vended, etc.); (iii) product(s) purchased 1215 during thetransaction; (iv) an identifier of a receptacle 1220 from which theproduct(s) purchased were vended; and (v) a transaction total 1225.

It should be noted that, in one or more embodiments, the transactiondatabase may store data regarding transactions at more than one vendingmachine. In such embodiments, the transaction database may further storeadditional information regarding the vending machine at which atransaction occurred (e.g., an identifier of the vending machine, alocation of the vending machine, etc.).

In one embodiment, a new record in the transaction database is createdupon the occurrence (e.g., initiation, completion or a timethere-between) of a transaction at a vending machine. In one embodiment,the transaction database stores a record for transactions initiated butnot completed at a vending machine (e.g., a customer may change his mindand request a refund, etc., thus not completing a transaction).

As described below, in one embodiment an offer may be output to acustomer during a transaction. For example, an offer for a package ofproducts and/or for an upsell product may be output to the customer. Insuch embodiments, an indication of an offer output and/or acceptedduring a transaction may be stored in the transaction database oranother database. For example, an indication of whether an offer wasoutput and/or accepted may be stored in the transaction database, alongwith an identifier of the offer that was output and/or accepted. Thedetails (e.g., type of offer, product offered, price defined by offer,etc.) of the offer output and/or accepted may be stored in a differenttable, retrievable based on the offer identifier. In one embodiment, thedetails of the offer may be stored in the transaction database.

As described below, in one embodiment a customer may be enabled toprovide an indication of a product desired by the customer that is notimmediately available for vending. For example, a customer may desire aproduct stored in a receptacle of the vending machine but behind unitsof another product. In such an embodiment, the transaction database oranother database may store an indication of the product indicated by thecustomer along with an indication of whether the customer obtained theproduct (e.g., whether the product was made available for vending andwas vended for the customer).

It should be noted that any and all of the data in any of the databasesdiscussed herein may be input to, or changed in, a database on aperiodic or non-periodic basis. For example, data may be input to aproduct inventory database and/or a product pricing database by anoperator of a vending machine at the time of restocking the vendingmachine or at another time. In another example, data in a productinventory database and/or a product pricing database may be updated at atime of restocking of the vending machine or at another time. Further,any and all of the data in any of the databases described herein may beinput and/or updated remotely (e.g., via a computing devicecommunicating over a communications network) and/or locally (e.g., by anoperator using a keypad, touch-screen and/or barcode scanner). Forexample, in one embodiment at least some data may be input to, orupdated in, a database via a communication port (e.g., a UniversalSerial Bus (USB)) port of a vending machine or a peripheral deviceassociated with a vending machine. For example, an operator of thevending machine may utilize a portable device on which the data isstored and download the data to the vending machine and/or peripheraldevice using a USB port connection (e.g., at a time of restocking thevending machine).

5. Methods of Utilizing Product Data

As described above, Applicants have recognized many novel methods thatutilize data regarding product inventory in a vending machine and/or arelative positioning of a product within a vending machine, tofacilitate sales at the vending machine. For example, in one embodimenta determination that a unit of a first product is located in a firstposition of a receptacle of a vending machine (e.g., is the next productimmediately available for vending from the receptacle) may cause one ormore subsequent determinations and/or events at the vending machine. Forexample, the event may be a change in an indicator of informationassociated with the receptacle. In a more particular example, an eventmay comprise a change in a price associated with the receptacle. Inanother more particular example, an event may comprise a change in anindicator (e.g., LED light) of an availability of the first product forinclusion in a package offer. In another embodiment, a determinationthat a unit of a second product is located within a receptacle of thevending machine but not currently available for immediate vending (e.g.,the unit is not located in a first position of any receptacle) may causeone or more subsequent determinations and/or events. For example, adetermination that no unit of a second product is available forimmediate vending may cause a determination of whether one or moreoffers should be output to facilitate the second product being madeavailable for immediate vending. FIGS. 13A and 13B through FIG. 16illustrate some exemplary methods of utilizing product inventory andrelative product positioning data, in accordance with some embodimentsof the present invention.

In one embodiment, an advertisement or other promotion may be stored ina memory of the vending machine and/or a memory accessible to thevending machine. The advertisement or promotion may be associated with aparticular product. Further, the output of the advertisement orpromotion may be dependent on a positioning of the product within thevending machine. For example, in one embodiment an advertisement for aproduct may be output (e.g., via an LCD screen or other output device ofthe vending machine) when no unit of the product is located in a firstposition of a receptacle. For example, an operator of the vendingmachine or manufacturer of the product may find it desirable toadvertise the product when it is not currently immediately available forvending, to promote awareness of the presence of the product within thevending machine even if no unit of the product is located in a firstposition of a receptacle. In another embodiment, an advertisement for aproduct may be output only if a unit of the product is located in afirst position of a vending machine.

In one embodiment, a menu of products available for immediate vending(e.g., a menu on a touch-screen via which customers select products forpurchase) may be updated based on which products are located in firstpositions of the receptacles of the vending machine. For example, themenu may be updated as appropriate to only display icons for theproducts units of which are currently located in first positions of thereceptacles.

As described herein, in one or more embodiments the product inventorydata available in accordance with embodiments of the present inventionmay be used to determine whether the vending of one or more units ofproduct should be facilitated in some manner. For example, it may bedetermined that the vending of a first unit of product is apre-condition to the vending of a second unit of product. In oneembodiment, the first unit may be a unit of a first product while thesecond unit may be a unit of a second product. For example, units of afirst product may be located in front of units of a second product in agiven receptacle and thus “block” the units of the second product. Thus,the vending of the units of the first product is a pre-condition to thevending of a unit of the second product. A first unit of product thatrenders a second unit of product unavailable for immediate vending byobstructing the vending path (e.g., by being located in a position infront of the second unit of product) is referred to as a “blocking”product or unit of product herein. Similarly, the second unit of productthat is unavailable for immediate vending due to obstruction by thefirst unit of product is referred to as a “blocked” product or unit ofproduct herein.

In one or more embodiments of the present invention, product inventorydata may be utilized to determine whether making one or more units of ablocked product available for immediate vending should be accelerated.Such an acceleration may be accomplished, for example, by promoting thevending of one or more units of a blocking product. For example, it maybe determined whether a promotion for the blocking product should beoutput, in order to increase the rate of sale of units of the blockingproduct.

In one embodiment, a price for a blocked product may be raised if, forexample, the blocked product is not available for immediate vending fromanother receptacle and/or a demand for the blocked product is greaterthan the demand for the blocking product. For example, a unit of ablocked product that is normally offered for sale for $0.75 may beoffered to a customer for $1.00. The raise in the price may beimplemented, for example, if it is determined that the blocking productis to be vended without being sold (e.g., by being vended into a lockedcompartment of the vending machine such as a designated partition of thedelivery bin, designated to hold vended products that have not been soldto customers). The raise in price may be due to, for example, theforegone opportunity to sell the unit of the blocking product for thetime being. Thus, in one embodiment, a customer may be enabled topurchase a blocked product by paying a premium for the blocking product.

Various variables may be utilized in determining whether the vending ofa blocking product should be facilitated in an attempt to make theblocked product available for sale. In general, it may be determinedwhether it would be more advantageous to an operator of the vendingmachine for the blocked product to be available for immediate vending(at the current time or a future time) rather than the blocking productbeing available for immediate vending. If so, a promotion for theblocking product may be constructed and output, as described in detailbelow. For example, the blocking product may be offered at a discount,as a free bonus product, or as part of a package of products.

As described herein, whether it is advantageous to an operator of avending machine to have a product available for immediate vending, orwhether it is advantageous to an operator of a vending machine topromote the vending of a blocking product, may be based on variousfactors. Such factors include, for example:

-   -   i. profitability of the blocked product and/or the blocking        product,    -   ii. a demand for the blocked product and/or the blocking        product,    -   iii. a rate of sale (e.g., an ideal product velocity and/or an        actual product velocity) for the blocked product and/or the        blocking product,    -   iv. a current time and/or a time of the next expected refill of        the vending machine,    -   v. an expected rate of sale over a predetermined time for the        blocked product and/or the blocking product,    -   vi. an expiration date of the blocked product and/or the        blocking product,    -   vii. a customer's selection or indication of a desire to        purchase the blocked product, and/or    -   viii. an availability of the blocked product and/or the blocking        product from receptacles other than the receptacle being        considered.

In one illustrative example, with reference to elements 1050 and 1055 ofFIG. 10A, assume that product “P-103-91” is selling at a higher thanexpected rate during a fill period (e.g., the actual product velocity isgreater than the ideal product velocity). As illustrated in table 1000of FIG. 10A, a unit of product “P-103-91” is located in Position 1 ofRow 4, Column 3. Thus, this unit of product “P-103-91” is available forimmediate vending. One of two additional units of product “P-103-91” islocated in Positions 2 and 3, respectively, of Row 4, Column 3. However,these two units are blocked by a unit of product “P-894-31”. It shouldbe noted that units of product “P-103-91” are not located in any otherpositions of the vending machine in question, as illustrated in table1000. In such a circumstance, a subroutine may be executed to determinewhether the vending of the unit of product “P-894-31” should befacilitated in some manner, in order to make the units of product“P-103-91” located behind it available for vending sooner than they maybe available absent the promotion. The subroutine may include, forexample, determining a rate of sale of the blocking product (product“P-894-31”). For example, if the rate of sale of the blocking product isbelow a predetermined threshold (e.g., below the ideal product velocityfor product “P-894-31” and/or below the actual product velocity ofproduct “P-103-91”), then it may be determined that the vending ofproduct “P-894-91” should be facilitated. In other words, it may bedetermined that sales of the blocking product(s) of the first receptacleshould be promoted in order to decrease the likelihood of unavailabilityof the blocked product at the time that the units of the blocked productfrom the second receptacle are sold out.

A subroutine to determine whether a vending of a blocking product shouldbe facilitated may be initiated, for example, when one or morepredetermined conditions is satisfied by a state of product inventory ofthe vending machine. Examples of such predetermined conditions include,for example, that a product that is:

-   -   i. currently selling at a rate above a predetermined rate (e.g.,        above an expected or predicted rate); and/or    -   ii. a blocked product in another receptacle; and/or    -   iii. sold out from a receptacle of a vending machine (e.g., the        subroutine is launched when the last unit of the product is        vended from the receptacle); and/or    -   iv. close to being sold out from a receptacle of a vending        machine (e.g., less than a predetermined number of units of the        product remain in the receptacle); and/or    -   v. expected to be sold out from a receptacle of a vending        machine before another unit of the product is expected to become        available for immediate vending from another receptacle (e.g.,        based on current rates of sale of the blocked product and/or the        blocking product, based on outstanding subscriptions to the        blocked product and/or the blocking product).

It should be noted that various data, referred to as Optimal ProductInventory Management (OPIM) data, which may be utilized in thedetermination of whether a vending of a product should be facilitated,may be accessible to a vending machine in accordance with embodiments ofthe present invention. Such data may be accessible, for example, bybeing stored in a memory of the vending machine, a memory of aperipheral device associated with the vending machine, an RFID tag, amemory of a controller in communication with the vending machine, amemory of a peripheral device controller, or a combination thereof. Suchdata may include, for example:

-   -   i. an expected product velocity for a product available for sale        within a vending machine,    -   ii. an actual product velocity of a product available for sale        within a vending machine,    -   iii. a cost to the operator of the vending machine of a product        available for sale within a vending machine,    -   iv. a minimum acceptable price (or highest acceptable discount)        for a product available for sale within a vending machine,        and/or    -   v. a profitability of a product to an operator of the vending        machine.

A more detailed description of such data and how such data may beobtained and used, may be found in commonly-owned U.S. patentapplication Ser. No. 10/855,247 entitled “Method and Apparatus forManaging Vending Machine Offers”, filed May 27, 2004 in the name ofWalker et al., which was previously incorporated by reference herein forall purposes.

Referring now to FIGS. 13A and 13B, illustrated therein is a process1300 for vending a product from a vending machine, in accordance withone or more embodiments of the present invention. Process 1300 initiateswith step 1305, in which the vend process begins. Step 1305 may betriggered by, for example, an action of a customer of the vendingmachine. For example, a customer's input of payment into the vendingmachine (e.g., coins, bills, tokens, a code, an account identifier, acustomer identifier, etc.) may trigger step 1305. In another example, acustomer's indication of a desire for a product may trigger step 1305.In yet another process, a determination of a customer's proximity to thevending machine (e.g., via a motion detector) may trigger step 1305.

In step 1310, a selection of a product is received. For example, acustomer may indicate an identifier of a receptacle, thus indicating aselection of the unit of the product which is next available for vendingfrom the receptacle. In another example, a customer may indicate adesired product by selecting a representation of the desired productfrom a menu of choices. For example, a display screen or menu of bezelsmay be provided to the customer, the display screen or menu indicatingvarious products available for sale from the vending machine. In oneembodiment, a selection of a product may be received from a remotecustomer device (e.g., a personal computer communicating with thevending machine over a network). In one embodiment, a selection of aproduct may be received wirelessly (e.g., a portable device may transmitthe selection via a wireless protocol such as Bluetooth™)

A determination of whether a unit of the selected product is availablefor immediate vending is performed in step 1315. For example, step 1315may comprise determining whether a unit of the selected product islocated in a first position of a receptacle of the vending machine. Sucha determination may comprise, in one embodiment, querying a productinventory database based on an identifier associated with the selectedproduct. The determination may further comprise determining whether anyone of the positions in which units of the product are located is afirst position of a receptacle. For example, a product inventorydatabase may store an indication of which positions are first positions(e.g., the database may include a flag for each position that is a firstposition and/or a vending machine may be programmed to recognize a firstposition based on a format of the position identifiers).

If it is determined, in step 1315, that a unit of the selected productis available for immediate vending, the process continues to step 1320,in which it is determined whether the minimum payment required topurchase the selected product has been received. For example, it may bedetermined whether the amount of coins, bills or tokens provided by thecustomer is at least equal to the price of the selected product. Inanother example, it may be determined whether a code, account identifieror other identifier provided as payment is sufficient to cover the priceof the selected product. If the minimum payment has been received, theprocess continues to step 1345 (FIG. 13B). Otherwise, the processcontinues to step 1325, in which a prompt for the required additionalpayment is output. For example, a message or other indication may beoutput. The message or other indication may inform the customer of theneed for more payment, an additional amount of payment required and/orof the insufficiency of the payment already provided.

If, in step 1315, it is determined that a unit of the selected productis not available for immediate vending, the process continues to step1330. In step 1330 it is determined whether a unit of the selectedproduct is to be made available for vending. This determination mayinvolve, for example, determining an identity of the one or more unitsof product that may be positioned in front of the selected product in areceptacle (e.g., by querying a product inventory database based on theposition identifier(s)). In one embodiment, the determination mayfurther involve determining whether the unit(s) of product located infront of the unit of the selected product may be offered as a package tothe customer, the package including the unit of the selected product. Inanother embodiment, the determination may further involve determiningwhether the unit(s) of product located in front of the unit of theselected product may be offered as a free gift or bonus to the customerwith the purchase of the unit of the selected product. In one or moreembodiments, the determination of whether a unit of the selected productis to be made available for sale may be based on any or all of the OPIMdata with respect to the selected product and any products blocking theselected product.

If, in step 1330, it is determined that a unit of the selected productis not to be made available for vending, the process 1300 continues tostep 1335, in which an indication of the inability to vend a unit of theselected product is output. For example, a text or audio message may beoutput to a customer via one or more output devices of the vendingmachine or of a peripheral device.

If, in step 1330, it is determined that a unit of the selected productis to be made available for vending, the process continues to step 1340.In step 1340 an event to facilitate the availability of the unit of theselected product is caused. For example, step 1340 may compriseoutputting an offer to the customer. The offer may comprise, forexample, an offer for a package comprising a unit of the selectedproduct and the unit(s) of other product located in front of the unit ofthe selected product, for a package price that is less than the sum ofthe retail prices of the products included in the package. In oneembodiment, step 1340 may comprise vending of the unit of the selectedproduct and the unit(s) of product located in front of the unit of theselected product. The vending may, in one embodiment, be accompanied byan output of a message that informs the customer that the unit(s) ofproduct located in front of the unit of the selected product are beingprovided to the customer as a free bonus or gift, or that the customerhas randomly won the unit(s) of product located in front of the unit ofthe selected product.

In one embodiment, causing an event to facilitate making a blockedproduct available for vending may comprise contacting an operator of thevending machine and informing the operator of the desirability ofremoving the blocking product from the receptacle. For example, amessage (e.g., e-mail, pager message, etc.) may be output to theoperator via a communication network. In one embodiment, the operatormay be informed of the desirability of switching the units of theblocked product and the blocking product such that the blocked productbecomes the blocking product.

The process then returns to step 1315, in which it is again determinedwhether a unit of the selected product is available for immediatevending. For example, if step 1340 comprised an output of an offer for apackage of products, step 1315 may comprise determining whether thecustomer accepted the offer. In another example, if step 1340 comprisedproviding the unit(s) of product located in front of the unit of theselected product as a bonus, gift or prize, step 1315 may comprisedetermining whether the unit(s) or product have in fact been vended.

If it is determined, in step 1315, that a unit of the selected productis available for immediate vending, the process 1300 continues to step1345 (FIG. 13B). In step 1345, the receptacle of the unit of theselected product to be vended is determined. In step 1350 the unit ofthe selected product is vended.

The receptacle inventory data is then updated, in step 1355, to reflectthe vending of the unit of the selected product (and, if appropriate,the vending of the unit(s) of product that had been located in front ofthe vended unit of the selected product). For example, the productinventory database associated with the vending machine from which theunit(s) of product had been vended may be updated to reflect the newpositioning of units of product as a result of the vending.

In one embodiment, a transaction database associated with the vendingmachine is also updated. For example, a new record may be created in thetransaction database, the record storing data related to the vending ofthe unit of the selected product.

In step 1360 it is determined whether any change is due to the customer.For example, in an embodiment where a customer provided a code aspayment for the selected product, determining whether any change is duemay comprise determining whether any additional funds are associatedwith the code or a determination of whether a number of units remainavailable for purchase with the code. In an embodiment where a customerprovided coins, bills and/or tokens as payment for the selected product,step 1360 may comprise determining whether the monetary amountrepresented by the coins, bills or tokens provided by the customerexceeds the payment required for the transaction.

If, in step 1360, it is determined that change is due, the processcontinues to step 1365. Otherwise, the process ends at step 1370.

In step 1365 the appropriate amount of change is provided to thecustomer. For example, an account associated with the customer may becredited. In another example, a new code may be output to the customer.In yet another example, coins, bills and/or tokens may be output to thecustomer. Once the appropriate amount of change is provided, the processends at step 1370.

In one embodiment, a customer may be enabled to indicate a desire topurchase a product not available for immediate vending (e.g., a productno unit of which is located in a first position of any receptacle). Insuch an embodiment, an effort may be made to provide the product to thecustomer. For example, a package deal offer may be output to thecustomer, offering the customer a unit of the desired product along withany units of any blocking products for a package price. In anotherexample, the customer may be enabled to provide contact information(e.g., an e-mail address). This contact information may be stored inassociation with the product identifier. The contact information may beutilized to inform the customer of the availability of the product oncea unit of the product is available for immediate vending. In oneembodiment, the unit of the desired product may be reserved for thecustomer for a predetermined period of time. For example, in oneembodiment a code may be provided to the customer for which the unit ofproduct is reserved. The customer may input the code into the vendingmachine in order to cause the unit to be vended.

Referring now to FIG. 14, illustrated therein is a process 1400 forupdating an indicator associated with a receptacle of a vending machine.As described above, an indicator may comprise a message output via anoutput device of a vending machine or a peripheral device, indicatinginformation to a customer of the vending machine. For example, anindicator may comprise an LED light that, depending on whether it islit, informs the customer of the availability of a unit of a product forinclusion in a package of products (e.g., if the light is lit, theproduct is available). In another example, an indicator may comprise aprice display (e.g., an LED display or LCD screen) that informs thecustomer of a price at which a unit of a product is being offered forsale. For purposes of illustrating the process 1400, the latterindicator will be used.

Process 1400 begins with step 1405. For example, a vending of a unit ofa product may cause process 1400 to be initiated. In step 1410 areceptacle of the vending machine is determined. Step 1410 may comprise,for example, determining the receptacle of the vending machine fromwhich a unit of a product was just vended. In another example, theprocess 1400 may be performed periodically or substantiallycontinuously. In such an embodiment, the device performing process 1400may perform the process 1400 for each receptacle of the vending machinein a certain order. Accordingly, step 1410 may comprise determining thenext receptacle to be reviewed in the order programmed into the vendingmachine. Determining the receptacle may comprise determining theidentifier of the receptacle.

In step 1415, the next product available for immediate vending from thereceptacle is determined. For example, the identity of the product aunit of which is located in the first position of the receptacle may bedetermined. In one embodiment, a product inventory database may bequeried for the identity of the product in the first position of thereceptacle. In another embodiment, an RFID tag of the product in thefirst position may be communicated with to determine the identity of theproduct.

In step 1420 the price of the product available for immediate vendingfrom the receptacle is determined. In one embodiment, a product pricedatabase may be accessed to determine the price associated with theproduct determined in step 1415. In another embodiment, a productinventory database may store a price for the product and thus the pricemay be retrieved from the product price database. In yet anotherembodiment, a product RFID tag may store a price for the product andthus the price may be determined by communicating with the RFID tag.

In step 1425 the price currently displayed as associated with thereceptacle may be determined. For example, in one embodiment a vendingmachine may have access to a table of receptacles located within thevending machine and the respective price currently being displayed asassociated with each receptacle. Such a table may be stored, forexample, in a memory of the vending machine, a memory of a peripheraldevice and/or a memory of another device. Typically, the price displayedas associated with a receptacle is the price for the unit of the productcurrently located in the first position of the receptacle.

The price determined in step 1420 is then compared to the pricedetermined in step 1425. If the price determined in step 1420 is thesame as the price determined in step 1425, then no change in price isnecessary or desired and the process continues to step 1440. If theprice determined in step 1420 is different from the price determined instep 1425, the process continues to step 1435.

In step 1435 the price displayed as associated with the receptacledetermined in step 1410 is changed to be the price determined in step1420. For example, a memory of the vending machine may be updated toreflect this change. In one embodiment, the table of receptacles andassociated prices (described with respect to step 1425) may be accessedand the record of the receptacle determined in step 1410 may be updatedto reflect that the receptacle is currently associated with the pricedetermined in step 1420. Step 1435 may further comprise changing thedata being output via an output device associated with the receptacle,the output device outputting the current price associated with thereceptacle. For example, in one embodiment each receptacle is associatedwith an LED display that outputs the price for the product nextavailable for vending from the receptacle. In such an embodiment, step1435 may comprise causing the LED display to display the pricedetermined in step 1420.

Once the price for the receptacle is changed in step 1435, the process1400 continues to step 1440, in which it is determined whether the priceupdate process should continue. If, for example, the process 1400 hadbeen initiated due to a vending of a unit of a product from a particularreceptacle, it may be assumed that there is no further need to continuethe price update process. If, in another example, the process 1400 is tobe performed on a periodic basis for all receptacles in the vendingmachine, the step 1440 may comprise determining whether all receptacleshad been updated and, if not, which receptacle should be evaluated next.If it is determined that the price update process should continue, theprocess 1400 returns to step 1410, in which step another receptacle isdetermined. If, on the other hand, it is determined that the priceupdate process should not continue, then the process 1400 ends.

In one embodiment, a price is not displayed for a receptacle. Instead,the price is determined from memory in response to a customer's inquiry.For example, a device (e.g., vending machine) may receive a priceinquiry for a particular receptacle. In response, the device maydetermine the unit of product currently stored in the first position ofthe receptacle. The device may then determine the price associated withthe unit of product (e.g., by accessing the price database and based onan identifier of the product). Accordingly, the device may utilizeproduct inventory data to determine an identity of a product a unit ofwhich is currently stored in a first position of a receptacle identifiedby a customer and determine the price thereof. In such an embodiment,for example, step 1435 may comprise storing in a memory the price forthe product next available for immediate vending. For example, inaddition or in lieu of pricing information for products being stored ina price database, a vending machine may cache a price corresponding to aproduct or otherwise temporarily store the price (e.g., in RAM, volatilememory, flash memory, etc.).

Referring now to FIG. 15, illustrated therein is an exemplary process1500 that utilizes product inventory data to cause an event tofacilitate vending of a blocking product in an attempt to make a blockedproduct available for immediate vending (at the current time or a futuretime). Process 1500 begins with step 1505, in which the vendfacilitation process is initiated. As described above, in one or moreembodiments it may be determined that the vending of a blocking productshould be facilitated in an attempt to make one or more units of ablocked product available for immediate vending. For example, it may bedetermined that a customer desires a unit of a blocked product and thisdetermination may cause the vend facilitation process to be initiated.In another example, it may be determined that units of a product that isa blocked product in a first receptacle, while currently available forimmediate vending from a second receptacle, are soon expected to be soldout from the second receptacle (e.g., based on a current rate of salesfor the product). This is another example of a determination that maycause the vend facilitation process to be initiated. It should be notedthat, in one embodiment, an occurrence of one or more of thepredetermined conditions listed in the example immediately above maycause the vend facilitation process to be initiated.

In step 1510, the blocked product is determined. This may comprise, forexample, identifying the units of the blocked product and theposition(s) thereof. It may also comprise determining the receptacle inwhich the blocked product is located.

In step 1515, the blocking product is determined. This may comprise, forexample, querying the product inventory database for the identity of anyproduct that is located in the positions of the receptacle of theblocked product that are located in front of the positions in which theunits of the blocked product are located.

In step 1520, it is determined whether an attempt should be made toaccelerate the time at which the blocked product is available forimmediate vending. In other words, it is determined whether the vendingof the blocking product should be facilitated. This determination maycomprise, for example, taking into account any and all of the OPIM datadescribed above (e.g., rate of sale of the blocking product and/or theblocked product, profitability to the operator of the blocked productand/or the blocking product) as well as any additional data deemedappropriate. If it is determined that the vending of the blockingproduct should not be facilitated (e.g., because the current demand orproduct velocity for the blocking product is greater than the currentdemand or product velocity for the blocked product), the process ends.Otherwise, the process continues to step 1525.

In step 1525 a promotion for the blocking product is output. Forexample, an offer to sell the blocking product at a discount (e.g., apredetermined discount stored in memory) may be output. In anotherexample, if there is only one unit of the blocking product in front of aunit of the blocked product, an offer for a package of the unit of theblocking product and a unit of the blocked product may be output. Forexample, the two units may be offered for a package price that is lessthan the sum of the retail prices of the individual units. A vendingmachine may have access to many different rules for determining whattype of promotion should be output and for constructing a promotioninstance. Commonly-owned U.S. patent application Ser. No. 03-039,previously incorporated by reference herein, describes various methodsof determining a type of promotion and of constructing a promotioninstance.

It should be noted that, in one embodiment, a device other than thevending machine may determine whether to output a promotion for ablocking product, determine the promotion type, and/or construct thepromotion instance. For example, a controller in communication with avending machine (or a peripheral device associated with a vendingmachine) may perform any or all of these determinations. The vendingmachine may then, in one embodiment, be directed to perform one or moreactivities based on these determinations. For example, the vendingmachine may be directed to output a promotion instance, change a priceassociated with a receptacle of the vending machine, etc. It shouldfurther be noted that any of the determinations described herein may beperformed by a device other than a vending machine, in addition to, inconjunction with, or instead of being performed by the vending machine.

Referring now to FIG. 16, illustrated therein is an example process 1600that may be performed after each vending of a product from a vendingmachine. The process 1600 begins with step 1605, in which the vendedproduct is determined. For example, a product identifier that identifiesthe vended product may be determined. A position and/or receptacle fromwhich the product was vended may also be determined.

In step 1610 it is determined whether a minimum or predetermined numberof units of the vended product are still available for immediatevending. For example, it may be determined whether a unit of the vendedproduct is located in a first position of any receptacle of the vendingmachine. In one embodiment, it may further be determined whether aminimum number of additional units of the vended product are located inseries behind the unit located in the first position. The determinationof step 1610 may be performed by querying a product inventory databasebased on the product identifier determined in step 1605.

For example, referring to elements 1040 and 1045 of FIGS. 10A and 10B,assume that process 1600 is performed upon the vending of the unit ofproduct “P-555-43” from Position 1 of Row 1, Column 3. Step 1610 maycomprise determining whether a unit of product “P-555-43” is stillavailable for immediate vending. A review of the example data in thetable 1000 indicates that it is. A unit of product “P-555-43” is locatedin Position 1 of Row 1, Column 4.

Returning to process 1600, if it is determined in step 1610 that a unitof the vended product is still available for immediate vending, theprocess ends. If, on the other hand, it is determined that a unit of thevended product is not available for immediate vending, the processcontinues to step 1615.

In step 1615 it is determined whether a unit of the vended product canbe made available for immediate vending (or whether an attempt toaccelerate the time at which the unit will be available for immediatevending can be made). This determination may comprise, for example,determining whether a unit of the vended product is located in anyposition of the vending machine. Such a determination may be performedby querying a product inventory database based on the product identifierof the vended product. In one embodiment, the determination of step 1615may comprise determining whether less than a predetermined or maximumnumber of units are blocking the unit of the vended product.

If it is determined, in step 1615, that a unit of the vended product canbe made available, the process 1600 continues to step 1620. Otherwise,the process ends. In step 1620 it is determined whether a unit of thevended product should be made available for immediate vending (orwhether an attempt should be made to accelerate a time at which a unitof the vended product will be available for immediate vending). In oneembodiment, step 1620 may comprise determining whether a promotion forthe blocking products that are positioned in front of the unit of thevended product should be output. This determination may be based on, forexample, any or all of the OPIM data described above, or any other datadeemed appropriate. For example, step 1620 may comprise determiningwhether it would be more profitable to an operator of the vendingmachine to promote the blocking product in an attempt to make theblocked product available for vending or whether it would be moreprofitable to the operator to sell the blocking product at the currentor retail price.

If it is determined, in step 1620, that a unit of the vended productshould be made available for vending, the process continues to step1625. Otherwise, the process ends. In step 1625, an event to facilitatethe making of the unit of the vended product available for immediatevending is caused. For example, a price of the blocking product may bereduced. In another example, the blocking product may be made availablefor inclusion in a package with a popular product. In yet anotherexample, one or more units of the blocking product may be provided to acustomer as a bonus, gift or prize. In yet another example, one or moreunits of the blocking product may simply be vended. In yet anotherexample, one or more units of the blocking product may be vended into adesignated compartment of the vending machine (e.g., a lockedcompartment that is accessible only to the operator of the vendingmachine and/or only to a customer having a code allowing access to thecompartment).

It should be noted that some of the processes described herein comprisea subroutine that utilizes product inventory information in response toan event initiated by a customer (e.g., an indication that a customerdesires to purchase a particular product, a vending of a unit of aproduct, etc.). Other processes, however, utilize product inventory dataand OPIM data in a proactive manner (i.e., in anticipation of expectedfuture needs) and not necessarily in response to a specific event. Forexample, process 1500 (FIG. 15) is a process that may be performed on aperiodic, non-periodic or continuous basis and need not be triggered bya particular event at the vending machine. In another example, a processmay entail a continuous, periodic or non-periodic evaluation of OPIMdata for products available for sale from a vending machine andutilization of the data to determine whether an event to facilitatevending of one or more products should be initiated. Accordingly, asubroutine may be utilized to promote sales of a blocking product inorder to accelerate the time at which a unit of a blocked product isavailable for immediate vending, even when a unit of the blocked productis currently available for immediate vending from a second receptacle.For example, it may be determined that sales of the blocking product(s)of the first receptacle should be promoted in order to decrease thelikelihood of unavailability of the blocked product at the time that theunits of the blocked product from the second receptacle are sold out.

It should be noted that various specific uses of the product inventoryinformation have been described herein. However, the scope of thepresent invention is not limited to the uses explicitly described. Aperson of ordinary skill in the art, upon reading the presentdisclosure, will recognize other uses of product inventory data that arewithin the spirit and scope of the invention.

For example, because conventional vending machines do not have access toproduct inventory information as described herein, the conventionalvending machines continue to attempt to vend a product from a receptacleeven when there is no inventory in the receptacle if a customer selectsthe receptacle. For example, assume a conventional vending machinehaving a helix dispensing mechanism has dispensed all the products fromrow “A1” such that row “A1” is currently empty. A customer approachingthe vending machine may visually recognize that row “A1” is empty andthus not attempt to purchase a product therefrom. However, theconventional vending machine has no means of determining that row “A1”is empty. The conventional vending machine simply attempts to vend aunit of product from whichever row a customer identifies. Thus, if thecustomer were to input payment and identify row “A1” as the row fromwhich a unit of product should be vended, the conventional vendingmachine will initiate the motor of the helix of row “A1” in an attemptto vend a unit of product therefrom. For example, a customer may intendto purchase a product from row “A2” but inadvertently identify row “A1”to the machine (e.g., by actuating the inappropriate keys on a keypad ofthe vending machine). This may result in frustration to the customer.For example, the vending machine may initiate the motor of the helix ofrow “A1”, accept the customer's payment, and have no manner ofdetermining that no unit of product was in fact output to the customer.This unsuccessful attempt to vend a product from an empty row alsoresults in unnecessary wear and tear on the dispensing mechanism of thevending machine and usage of the vending machine's resources (e.g.,processing power, electricity). The product inventory informationdescribed herein, if accessible to a vending machine, would allow thevending machine to effectively or actually “turn off” a receptacle(e.g., make it unavailable for vending until it is restocked withproduct), thus avoiding the disadvantages described above.

6. Methods of Inputting Product Data

Various means may be employed for providing product data to a memoryaccessible to a vending machine in accordance with embodiments of thepresent invention. In one embodiment, an operator of a vending machinemay locally input the data using an input device of the vending machineat a time of servicing the vending machine. For example, an operator mayuse a keypad, touch-screen, bar code scanner or USB port to input theinformation to the vending machine while the operator is servicing thevending machine. In another embodiment, the product inventory data maybe communicated remotely to the vending machine (e.g., downloaded over acommunication network) from another device such as a controller,peripheral device, peripheral device controller, another device, or acombination thereof.

Referring now to FIG. 17, a process 1700 illustrates an exemplaryprocess via which product inventory information may be provided to amemory accessible to a vending machine. Process 1700 begins with step1705, in which the load process is initiated. Step 1705 may be performedin response to an indication from an operator of a vending machine(e.g., the operator may open a service door of the vending machine,input a code (e.g., a bar code) that initializes the process, etc.). Inanother embodiment, step 1705 may be performed in response to receivingan electronic communication from a device. For example, a device maycommunicate product inventory information via a network or the productinventory information may be downloaded via a USB port from a portabledevice of the operator.

In step 1710, a receptacle identifier is received. In one embodiment, anoperator of a vending machine may scan a bar code associated with thereceptacle, thus indicating the receptacle identifier. For example, eachreceptacle may have a bar code affixed thereto, the bar code encoding aunique identifier of the receptacle. In another embodiment, an operatormanual may include a bar code for each receptacle and the operator mayscan the appropriate bar code to indicate the receptacle the operatordesires to input product inventory information for. The example OperatorManual, provided below in Section 8, illustrates examples of bar codesusable for such a purpose. In another embodiment, step 1710 may comprisedetermining an identifier of a receptacle which is currently beingloaded with products or otherwise updated, without an explicit provisionof a receptacle identifier. For example, a vending machine may sensethat a receptacle has been removed or repositioned or has had a unit ofa product placed therein and determine the receptacle identifierthereof. In yet another embodiment, an operator may indicate areceptacle identifier via another input device (e.g., a keypad, atouch-screen, a microphone, etc.).

In step 1715, a product identifier is received. The product identifiermay comprise, for example, a Universal Product Code (UPC), a descriptionof the product, a brand name or trademark name of the product, and/oranother type of identifier that uniquely identifies a product. In oneembodiment, receiving a product identifier comprises receiving a barcode scanned by a bar code reader associated with the vending machine.The bar code reader may comprise, for example, a hand-held bar codescanner operated by the operator. In another embodiment, receiving aproduct identifier comprises receiving a typed-in product identifierthat is input via a keypad or touch-screen of the vending machine. Inanother embodiment, receiving a product identifier comprises reading theinformation of an RFID tag of a unit of product input to the vendingmachine.

In step 1720 a number of units of the product identified in step 1715 isreceived. In one embodiment, an operator may scan a bar coderepresenting the number of units being loaded into the receptacle (e.g.,as illustrated in the exemplary Operator Manual described below inSection 8). In another embodiment, an operator may input a number ofunits using a keypad, touch-screen or microphone of a vending machine.In yet another embodiment, the receptacle may be equipped with one ormore sensors for detecting units of product positioned in thereceptacle. For example, a vending machine may be equipped with one ormore pressure sensors or optical sensors (e.g., for each position of thereceptacle) and may thus determine the number of units based on the datagathered by such sensors. In yet another embodiment, the number of unitsmay be determined based on the RFID tags of the units of products loadedinto the machine.

It should be noted that, in one embodiment, a vending machine may beequipped with a bar code scanner for each receptacle of the vendingmachine. In such an embodiment, the bar code of each unit of product maybe automatically read by the bar code reader as the unit is being placedinto the vending machine. Thus, the vending machine may determine theproduct identifier, number of units, and order of loading of each unitby scanning and tracking the bar codes of the loaded units.

In step 1725, the price of the product identified in step 1715 (and thusthe price for each unit of the product, in accordance with one or moreembodiments) is determined. In one embodiment, the operator may inputthe price for the product (e.g., by scanning a bar code, typing in theprice via a keypad or touch-screen, speaking the price, etc.). Inanother embodiment, the price may be determined from a price databasebased on the product identifier received in step 1715. The price may beinput to the price database or otherwise determined at a different timethan during the execution of process 1700.

In step 1730, the data determined in steps 1710 through 1725 is storedin a product inventory database. In one embodiment, if a price wasreceived in step 1725, the price may be stored in a price database inaddition to or instead of being stored in a product database.

In step 1735, it is determined whether an additional product is beingloaded into the receptacle identified in step 1710. For example, it maybe determined whether an identifier of another product has been input,before an identifier of another receptacle has been input. In oneembodiment, the operator may be queried as to whether another product isto be loaded into the receptacle. In one embodiment, if an identifier ofanother product is received before an identifier of another receptacleis received, the operator may be asked to confirm that the next productis being loaded into the same receptacle. In one embodiment, theoperator may be required to input a receptacle identifier in conjunctionwith each product identifier. Thus, if the operator is loading anotherproduct into the same receptacle, the operator may simply provide thesame receptacle identifier as was provided for the previous product. Ifit is determined that an additional product is being loaded into thereceptacle, the process returns to step 1715, in which another productidentifier is received. Otherwise, the process continues to step 1740.

In step 1740 it is determined whether an additional receptacle is beingloaded with products (or whether product inventory information is beingupdated for another receptacle). For example, an identifier of anotherreceptacle may be received. In one embodiment, an operator may bequeried as to whether product inventory information is to be loadedand/or updated for another receptacle. If it is determined that anotherreceptacle is being loaded and/or updated, the process returns to step1710, in which a receptacle identifier is received. Otherwise, theprocess ends.

It should be noted that, although the product inventory information isdescribed with respect to process 1700 as being received a portion at atime (e.g., a receptacle identifier, then a product identifier, then anumber of units of product), the various product inventory data may bereceived substantially simultaneously. For example, a product inventorytable storing the appropriate information may be downloaded to thevending machine.

In one embodiment, product inventory information may be transmittedelectronically to a vending machine or a peripheral device of a vendingmachine. For example, the product inventory information may bedownloaded to a memory accessible to the vending machine via acommunication network. For example, the information may be downloadedfrom a remote controller, such as controller 605 and/or peripheraldevice controller 660. In another embodiment, the information may bedownloaded from a portable device of the operator via a communicationport of the vending machine or a peripheral device of the vendingmachine (e.g., via a USB port).

In an embodiment in which product inventory information is transmittedelectronically, an operator of the vending machine may be provided witha printed version of the product inventory information. For example, theprinted version may include the number of units of each product to beloaded into the vending machine or that is stored in the vending machineand/or the location of the units (e.g., five units of a first productare to be loaded into the first five positions of a first identifiedreceptacle, and five units of a second product are to be loaded into thelast five positions of a second identified receptacle). In anotherembodiment, the vending machine or peripheral device of the vendingmachine may prompt the operator as to how to load the vending machine.For example, based on the product inventory information receivedelectronically, the operator may be prompted via an output device suchas an LCD screen to load, for each receptacle, a particular number unitsof respective particular products and the relative positioning of theproducts (e.g., to load five “Diet Pepsi™ cans into the first fivepositions of tray A1, five “Caffeine Free Pepsi™” cans into the lastfive positions of tray A2, ten cans of Canada Dry™ Ginger Ale into trayA3, etc.).

Further, in either the embodiment of process 1700 or the embodiments inwhich the product inventory data is transmitted electronically, theoperator of the vending machine may be requested to confirm that thestored product inventory information matches the actual inventory of thevending machine. For example, such a confirmation request may be outputto the operator at the end of the loading process (e.g., once theoperator indicates that the loading of the vending machine is complete).For example, the operator may be requested to confirm, for eachreceptacle, (i) the products stored in the receptacle, (ii) the numberof units of each such product, (iii) the relative positioning of theunits of each such product (e.g., the units of a first product arelocated in front of the units of a second product) and/or (iv) thespecific position each individual unit of product is located in. In oneembodiment, a touch-screen of the vending machine may outputconfirmation queries for each receptacle. In another embodiment, audioprompts may be output to the operator.

Referring now to FIG. 18, illustrated therein are various displayscreens 1800 through 1815 that may be displayed to an operator of avending machine, in accordance with one embodiment. The various displayscreens may be displayed, for example, sequentially to an operator, toprompt the operator to provide the information received in process 1700.Of course, many other formats and methods for prompting an operator forappropriate information may be used.

In one or more embodiments, loading of a product into a receptacle of avending machine may be rejected, prevented, and/or a warning against theloading of the product may be output to an operator. For example, somevending machine operators enter agreements with productmanufacturers/bottlers (e.g., Coca-Cola™) whereby operators receive freeor discounted machines from the product manufacturer/bottler providedthe operator only stock the manufacturer's brand(s). For example,Coca-Cola™ may provide to a local operator a vending machine so long ashe stocks only Coca-Cola™ products (e.g., Coke™, Sprite™, etc.). Productmanufacturers heretofore have limited means to monitor the operators'adherence to such agreements. Prior to the present invention, amanufacturer attempted to verify adherence to such an agreement bypaying personnel to visit and visually check the inventory of vendingmachines subject to such an agreement.

In one embodiment of the present invention, a vending machine may beprogrammed to only accept products of a particular manufacturer and/orto output a warning or message informing an operator of a violation ofan agreement with the manufacturer if an operator loads or attempts toload a product of a competing manufacturer. Further, in one embodiment,if a product in violation of an agreement with a manufacturer is loadedinto a vending machine, attempted to be loaded into a vending machine,and/or dispensed from the vending machine, an indication of such aviolation may be stored and/or transmitted to the manufacturer.

For example, in one embodiment, a product's RFID signals are read todetermine the manufacturer of the product. In another embodiment,manufacturer-specific bar codes must be read and authorized by thevending machine.

If stocking the manufacturer's product is a violation of an agreement,as stored in a memory accessible to the vending machine, the vendingmachine may be programmed to perform one or more actions. For example,the vending machine may be programmed to shut down or otherwise rejectthe sale of the violating product. In another example, the vendingmachine may be programmed to store and/or transmit an indication of theloading or attempted loading of the violating product to a predeterminedentity (e.g., a server associated with the manufacturer that providedthe vending machine to the operator).

7. Load Data

Provided below is one example of how data describing the units ofproduct stored in available receptacles of a vending machine may bestored, and the type of data that may be stored for each receptacle(referred to as a “slot” for purposes of the data below). It should benoted that although the data is provided in Extensible Markup Language(XML) format, any format may be used.

8. Example Operator Manual

Provided below are example representations of an exemplary OperatorManual, which may be used by an operator to input product inventoryinformation to a vending machine, in accordance with some embodiments ofthe present invention. It should be noted that the excerpts from theexemplary Operator Manual make extensive use of bar codes 9100, 9900(See FIG. 19A-B; where the barcodes 9100, 9900 are referenced and alsodepicted as numerals enclosed in less than and greater thansigns/brackets—e.g., in the place they may appear within the exemplaryOperator Manual) that may be scanned by the operator to conveyinformation to the vending machine. It should be understood that barcodes 9100, 9900 are just one means via which information may becommunicated to a vending machine or a device associated with a vendingmachine (e.g., a peripheral device associated with the vending machine):

Chapter 1: Taking Post-Inventory

Once you completed restocking the machine, it is time to update thesystem with post-inventory counts.

Required Steps

Step # Description 1 Scan the “Post-Inventory” bar code 9900 to start<9900> 2 Scan the first location you wish to count 3 Scan the product 4Scan the count Tip: If one location has more than one product, you canenter the same location again. 5 When finished with entering the newcounts of all locations that were restocked, scan the “Restock” bar code9908 below to complete the process. <9908> Then, scan the “restart” barcode 9904 below to restart the system <9904> When prompted, scan the“Confirm” bar code 9905 below to confirm <9905>

Chapter 2: If You Make Mistakes

Type If you make a mistake, you can undo the last One transaction byscanning the “Undo” bar code 9901 below. <9901> Type If you wish to goback to a location you just counted Two and redo it, scan the “Redo” barcode 9903_below. <9903> The system will ask you for the location and thecorrect count Type If you wish to undo everything you did so far andThree start over, scan the “Undo All” bar code 9902 below. <9902>

Chapter 3: Downloading Data

You can download reporting data through the USB Jump Drive.

Steps

Step # Description 1 Insert the device to the USB port 2 Remove thedevice once the system alerts that copying is completed

Index 1: Location Bar Codes

<9911> <9912> <9913> <9914> <9921> <9922> <9923> <9924> <9931> <9932><9933> <9934> <9941> <9942> <9943> <9944> <9945> <9946> <9947> <9948><9951> <9952> <9953> <9954> <9955> <9956> <9957> <9958> <9961> <9962><9963> <9964> <9965> <9966> <9967> <9968> <9971> <9972> <9973> <9974>

Index 2: Number Bar Codes

<9100> <9101> <9102> <9103> <9104> <9105> <9106> <9107> <9108> <9109><9110> <9111> <9112> <9113> <9114> <9115> <9116> <9117> <9118> <9119><9120> <9121> <9122> <9123> <9124> <9125> <9126> <9127> <9128> <9129><9130> <9131> <9132> <9133> <9134> <9135> <9136> <9137> <9138> <9139><9140> <9141> <9142> <9143> <9144> <9145> <9146> <9147>

9. Use Case

Provided below is an example “use case” description for an operatorrestocking of a vending machine in accordance with some embodiments ofthe present invention. As would be readily understood by one of ordinaryskill in the art, a use case is a “Unified Modeling Language” graphic ortext-based description of the behavior/functionality of softwareapplication. Use cases are well known tools which help set forth therequirements for the application.

Use Case: Operator Restocks Vending Machine Actor(s)

Driver

Activity 1 Operator Takes Pre-Inventory Stimulus The operator opens thedoor Variant 1 Basic Pre-condition 1. Price display screen for everylocation is flashing with a number that indicates the inventory countaccording to the database. Dialog 1. Actor observes each location to seeif there are any locations that have a count discrepancy between what'sphysically in the location and what's displaying. 2. Actor confirms thatall counts are accurate Post-condition 1. Driver is ready to restock themachine Variant 2 There are locations with discrepanciesPre-condition 1. Actor has reviewed the counts and confirms that thereare locations with count discrepancies. Dialog 1. Actor scans“Pre-Inventory” barcode 2. Display reads “Enter location” 3. Actor scansthe location that has discrepancy 4. Display reads “Enter product” 5.Actor scans the item that has discrepant count 6. Display reads “Entercorrect count” 7. Actor enters the count of the product that is actuallyin the location 8. Display reads “Enter Location” Post-condition 1.Driver is ready to enter the next location 2. Driver is ready to end thePre-Inventory menu Variant 3 Driver ends “Pre-Inventory” Dialog 1. Actorscans “End Pre-Inventory” barcode 2. Display reads “OK”

Activity 2 Operator fills the machine with stock Description This is anoff-line activity that does not require interaction with the system.

Activity 3 Operator Takes Post-Inventory Stimulus The operator opens thedoor Variant 1 Basic Pre-condition 1. Driver has completed restockingthe entire machine and is ready to confirm the counts. Dialog 1. Driverscans the “Post-inventory” barcode 2. Display reads “Enter location” 3.Actor scans the location he wants to service 4. Display reads “Enterproduct” 5. Actor scans the product he wants to add to this location 6.Display reads “Ending count” 7. Actor enters the total count of theproduct in the location 8. Display reads “Enter Location”Post-condition 1. Driver is ready to service another location (scanninganother location). Note: If the Actor wishes to add a different productto same location, he can do so by scanning the same location again.Assumption is that the order of product will be based on the order ofthe scan. That is, if product A is scanned and added before product B,that means product A is in front of product B. Variant 2 ExceptionPath - Product Not Found Pre-condition 1. The operator has scanned“Fill” barcode 2. The operator has a “New Product Scan Sheet” availableDialog 1. Display reads “Enter location” 2. Actor scans the location hewants to service 3. Display reads “Enter product” 4. Actor scans theproduct he wants to move from this location 5. Display reads “ProductNot Found. Scan the Product Again” 6. Actor scans the product 7. Displayreads “Scan the product description sheet” 8. Actor scans the productdescription from the “New Product Scan Sheet” 9. Display reads “Endingcount” 10.  Actor enters the total count of the product in the locationPost-condition 1. New product is added to the database 2. Driver isready to service another location Variant 3 Driver ends “Post-Inventory”Dialog 1. Actor scans “End Post-Inventory” barcode 2. Display reads “OK”

9. Conclusion

As has been described herein, Applicants have invented many novelmethods of using detailed product inventory data in a vending machine.At least some of these methods may be carried out more efficiently byproviding to a vending machine access to information regarding productinventory of the vending machine. Such information may include, forexample, a number of units of each product stored in a receptacle of thevending machine, a relative positioning of one product to another (e.g.,an order in which the products or units of products were loaded) and/orthe particular position of each individual unit of product within thevending machine or within a receptacle of the vending machine. Prior toApplicants inventions, no need or use had been recognized for suchinformation and such information was not stored. Applicants, however, byrecognizing some of the novel methods of promoting sales at a vendingmachine described herein, recognized a need and various uses for suchproduct inventory information. Accordingly, a vending machine inaccordance with embodiments of the present invention has access toproduct inventory information and may utilize such information topromote sales at the vending machine. Additionally, the vending machineis operable to receive such information and/or to access suchinformation from another device (e.g., from a memory of a peripheraldevice, from a memory of an RFID tag of a product, and/or from a memoryof a controller).

1. A vending machine, comprising: a cabinet; a plurality of receptaclesarranged within the cabinet, each receptacle of the plurality ofreceptacles storing a plurality of units of at least one product, saidplurality of units of the at least one product being stored in a series;a dispensing mechanism disposed within the cabinet, the dispensingmechanism configured to dispense, from each receptacle, a first unit ofthe respective plurality of units, the dispensing mechanism therebybeing operable to dispense only the first unit from the respectiveseries at a time; and means for determining, for each unit in each ofthe respective plurality of receptacles, information that defines arelationship between the unit and one of a plurality of series locationswithin the receptacle.
 2. The vending machine of claim 1, wherein themeans for determining information comprises a memory of the vendingmachine.
 3. The vending machine of claim 1, wherein the means fordetermining information comprises a remote memory accessible by thevending machine via a network.
 4. The vending machine of claim 1,wherein the means for determining information comprises a memoryassociated with a unit of a product.
 5. The vending machine of claim 1,wherein the memory comprises a radio frequency identification tag. 6.The vending machine of claim 1, further comprising: means for performingan action based on the information.
 7. The vending machine of claim 1,wherein the information defines, for each of the plurality of serieslocations within the receptacle, an identity of the unit stored in thelocation.
 8. The vending machine of claim 1, wherein the informationdefines, for each unit, a position of the unit in the one of theplurality of series locations within the receptacle.
 9. A vendingmachine, comprising: a plurality of receptacles for holding units ofproducts, each receptacle operable to hold a respective plurality ofunits in a series; a dispensing mechanism configured to dispense, fromeach receptacle, a first unit in the respective plurality of units, thedispensing mechanism thereby being operable to dispense only the firstunit from the respective series at a time; and a means for determining,for each unit of product stored in the vending machine, a positiondefined by an x, y and z coordinate.
 10. A vending machine, comprising:a serial product storage device configured to store units of products inseries such that only a subset of all units of products stored in thevending machine are available as next-to-vend; a processor; and a memoryin communication with the processor, the memory storing instructionsthat when executed by the processor cause the vending machine to:determine, for the serial product storage device, a first product thatis a product next available for vending from the serial product storagedevice; determine, for the serial product storage device, a secondproduct stored in the serial product storage device, the second productbeing stored behind the first product and thus not being next availablefor vending from the serial product storage device; determine that apredetermined rule has been satisfied, thereby determining that aprocess is to be executed to facilitate making the second product nextavailable for vending from the serial product storage device; andexecute the process, wherein an execution of the process comprises:outputting a promotion for the first product in an effort to make thesecond product available for vending from the serial product storagedevice.